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: Gerd Möllmann
Subject: bug#56682: Fix the long lines font locking related slowdowns
Date: Sat, 23 Jul 2022 16:33:28 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (darwin)

Gerd Möllmann <gerd.moellmann@gmail.com> writes:

> Eli Zaretskii <eliz@gnu.org> writes:
>
>> And I've found a serious sink of CPU cycles under truncate-lines, and
>> installed a fix on the feature branch.  Gerd, if you have time to
>> eyeball the fix and comment on it, I'd appreciate.  It's commit
>> 350e97d on the branch.  (I can post a more detailed explanation of
>> what I did and why, if that would help, because the code and the
>> functions it calls are somewhat tricky.)
>
> I'll look at it and come back.

modified   src/xdisp.c
@@ -7153,10 +7153,10 @@ forward_to_next_line_start (struct it *it, bool 
*skipped_p,
          || ((pos = Fnext_single_property_change (make_fixnum (start),
                                                   Qdisplay, Qnil,
                                                   make_fixnum (limit)),
-              NILP (pos))
+              (NILP (pos) || XFIXNAT (pos) == limit))
              && next_overlay_change (start) == ZV))
        {
-         if (!it->bidi_p)
+         if (!it->bidi_p || !bidi_it_prev)
            {
              IT_CHARPOS (*it) = limit;
              IT_BYTEPOS (*it) = bytepos;

I understand the first diff, which makes a lot of sense, but I'm afraid
I don't know enough about bidi to be of any help.





reply via email to

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