]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid nested iteration over intervals (bug#58144)
authorGerd Möllmann <gerd@gnu.org>
Wed, 28 Sep 2022 14:38:04 +0000 (16:38 +0200)
committerGerd Möllmann <gerd@gnu.org>
Wed, 28 Sep 2022 14:38:04 +0000 (16:38 +0200)
* src/xdisp.c (strings_with_newlines): Call
buffer_overlay_iter_finish.

src/xdisp.c

index cee75def804a5402155028391c22698a388489b3..6ecd3bdf24f4b847dd568837d80010002a34fda9 100644 (file)
@@ -7031,13 +7031,21 @@ strings_with_newlines (ptrdiff_t startpos, ptrdiff_t endpos, struct window *w)
       str = Foverlay_get (overlay, Qbefore_string);
       if (STRINGP (str) && SCHARS (str)
          && memchr (SDATA (str), '\n', SBYTES (str)))
-       return true;
+       {
+         buffer_overlay_iter_finish (current_buffer);
+         return true;
+       }
       str = Foverlay_get (overlay, Qafter_string);
       if (STRINGP (str) && SCHARS (str)
          && memchr (SDATA (str), '\n', SBYTES (str)))
-       return true;
+       {
+         buffer_overlay_iter_finish (current_buffer);
+         return true;
+       }
     }
 
+  buffer_overlay_iter_finish (current_buffer);
+
   /* Check for 'display' properties whose values include strings.  */
   Lisp_Object cpos = make_fixnum (startpos);
   Lisp_Object limpos = make_fixnum (endpos);