]> git.eshelyaron.com Git - emacs.git/commitdiff
A possible fix for bug #14753 with aborts in get_local_map.
authorEli Zaretskii <eliz@gnu.org>
Sun, 30 Jun 2013 15:03:31 +0000 (18:03 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sun, 30 Jun 2013 15:03:31 +0000 (18:03 +0300)
 src/intervals.c (get_local_map): Instead of aborting, clip POSITION
 to the valid range of values.

src/ChangeLog
src/intervals.c

index f10e1070fa3eaf82f18bec4fc382be64dc330af4..753f0b9826d652902ec0f2333628a844d68ce166 100644 (file)
@@ -1,5 +1,8 @@
 2013-06-30  Eli Zaretskii  <eliz@gnu.org>
 
+       * 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
index f65ce0ecc778665df6f3861d8bf894066d909b9e..0b3bcc6ef4ebfb8c0555a8a829deb71e38ec65f4 100644 (file)
@@ -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.  */