bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#56682: Fix the long lines font locking related slowdowns


From: Gregory Heytings
Subject: bug#56682: Fix the long lines font locking related slowdowns
Date: Fri, 29 Jul 2022 18:27:06 +0000


I don't know yet if it's necessary to add another similar recomputation inside init_iterator.

I'll play with other callers of init_iterator and start_display, and see if they can do similar things.


In case this helps, it is easy to enter the following conditional, for example with C-s, or with your previous M-g c 20000 and M-: (vertical-motion 200) RET recipe (in both steps). It's not clear to me if updating the narrowing bounds there has an actual impact. At least applying that change does not seem to have negative effects.

diff --git a/src/xdisp.c b/src/xdisp.c
index b1ee7889d4..e415320a52 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -3429,6 +3429,12 @@ init_iterator (struct it *it, struct window *w,
     {
       it->narrowed_begv = get_narrowed_begv (w, window_point (w));
       it->narrowed_zv = get_narrowed_zv (w, window_point (w));
+      if (charpos >= 0
+         && (charpos < it->narrowed_begv || charpos > it->narrowed_zv))
+       {
+         it->narrowed_begv = get_narrowed_begv (w, charpos);
+         it->narrowed_zv = get_narrowed_zv (w, charpos);
+       }
     }

   /* If a buffer position was specified, set the iterator there,





reply via email to

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