From: Eli Zaretskii Date: Sun, 30 Jun 2013 15:03:31 +0000 (+0300) Subject: A possible fix for bug #14753 with aborts in get_local_map. X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~1980 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=5d1c328614c3b8165ee3c9e9d3597f1fb0196ede;p=emacs.git A possible fix for bug #14753 with aborts in get_local_map. src/intervals.c (get_local_map): Instead of aborting, clip POSITION to the valid range of values. --- diff --git a/src/ChangeLog b/src/ChangeLog index f10e1070fa3..753f0b9826d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,8 @@ 2013-06-30 Eli Zaretskii + * intervals.c (get_local_map): Instead of aborting, clip POSITION + to the valid range of values. (Bug#14753) + * xdisp.c (Fmove_point_visually): Invalidate the cursor position when moving point by using the current glyph matrix. This avoids the need to force redisplay when this function is called in a diff --git a/src/intervals.c b/src/intervals.c index f65ce0ecc77..0b3bcc6ef4e 100644 --- a/src/intervals.c +++ b/src/intervals.c @@ -2196,9 +2196,7 @@ get_property_and_range (ptrdiff_t pos, Lisp_Object prop, Lisp_Object *val, /* Return the proper local keymap TYPE for position POSITION in BUFFER; TYPE should be one of `keymap' or `local-map'. Use the map specified by the PROP property, if any. Otherwise, if TYPE is - `local-map' use BUFFER's local map. - - POSITION must be in the accessible part of BUFFER. */ + `local-map' use BUFFER's local map. */ Lisp_Object get_local_map (register ptrdiff_t position, register struct buffer *buffer, @@ -2207,9 +2205,7 @@ get_local_map (register ptrdiff_t position, register struct buffer *buffer, Lisp_Object prop, lispy_position, lispy_buffer; ptrdiff_t old_begv, old_zv, old_begv_byte, old_zv_byte; - /* Perhaps we should just change `position' to the limit. */ - if (position > BUF_ZV (buffer) || position < BUF_BEGV (buffer)) - emacs_abort (); + clip_to_bounds (BUF_BEGV (buffer), position, BUF_ZV (buffer)); /* Ignore narrowing, so that a local map continues to be valid even if the visible region contains no characters and hence no properties. */