emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r108625: Fix bug #11653 with a crash


From: Eli Zaretskii
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r108625: Fix bug #11653 with a crash when more than 16 overlay strings are loaded.
Date: Sat, 16 Jun 2012 13:18:21 +0300
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 108625
fixes bug: http://debbugs.gnu.org/11653
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Sat 2012-06-16 13:18:21 +0300
message:
  Fix bug #11653 with a crash when more than 16 overlay strings are loaded.
  
   src/xdisp.c (handle_face_prop): Use chunk-relative overlay string index when
   indexing into it->string_overlays array.
modified:
  src/ChangeLog
  src/xdisp.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-06-16 09:57:56 +0000
+++ b/src/ChangeLog     2012-06-16 10:18:21 +0000
@@ -3,7 +3,9 @@
        * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.  If
        all the glyphs of the glyph row came from strings, and we have no
        cursor positioning clues, put the cursor on the first glyph of the
-       row.  (Bug#11653)
+       row.
+       (handle_face_prop): Use chunk-relative overlay string index when
+       indexing into it->string_overlays array.  (Bug#11653)
 
 2012-06-16  Andreas Schwab  <address@hidden>
 

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2012-06-16 09:57:56 +0000
+++ b/src/xdisp.c       2012-06-16 10:18:21 +0000
@@ -3691,7 +3691,8 @@
       int i;
       Lisp_Object from_overlay
        = (it->current.overlay_string_index >= 0
-          ? it->string_overlays[it->current.overlay_string_index]
+          ? it->string_overlays[it->current.overlay_string_index
+                                % OVERLAY_STRING_CHUNK_SIZE]
           : Qnil);
 
       /* See if we got to this string directly or indirectly from
@@ -3705,7 +3706,8 @@
          {
            if (it->stack[i].current.overlay_string_index >= 0)
              from_overlay
-               = 
it->string_overlays[it->stack[i].current.overlay_string_index];
+               = it->string_overlays[it->stack[i].current.overlay_string_index
+                                     % OVERLAY_STRING_CHUNK_SIZE];
            else if (! NILP (it->stack[i].from_overlay))
              from_overlay = it->stack[i].from_overlay;
 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]