GNU bug report logs -
#16526
24.3.50; scroll-conservatively & c-mode regression
Previous Next
Reported by: martin rudalics <rudalics <at> gmx.at>
Date: Thu, 23 Jan 2014 08:54:02 UTC
Severity: important
Found in version 24.3.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #34 received at 16526 <at> debbugs.gnu.org (full text, mbox):
> Date: Sat, 25 Jan 2014 17:48:02 +0100
> From: martin rudalics <rudalics <at> gmx.at>
> CC: 16526 <at> debbugs.gnu.org, acm <at> muc.de
>
> >> How should I know? I suppose redisplay_window eventually winds up
> >> calling the fontification function and sooner or later the c-code calls
> >> back_comment.
> >
> > Yes, that's what happens. And it cannot be avoided, AFAICS, when
> > scroll-conservatively is on.
>
> Well ... so you know why it calls back_comment around the END of the
> buffer?
It starts at the end of the buffer, but then moves all the way back
to the beginning.
And yes, I know why: it's because scroll-conservatively causes
redisplay to examine buffer text around point, when it decides where
to place window-start. This is triggered by redisplay after the move
to the end of the buffer.
> > What I see is that find_defun_start is called many times,
>
> ... 530 times as I mentioned earlier ...
>
> > with its
> > first argument moving from _end_ of the buffer backwards.
>
> Not monotonously. Sometimes it's called from the same position (for
> example 948653 is at least three times on my list) again.
True. But I'm not sure this is relevant to the slow redisplay.
> > This
> > happens when Emacs needs to redisplay the last portion of the buffer,
> > immediately after the call to end-of-buffer.
>
> Hmm ... but the problem is when going to BOB.
No, going to BOB is instantaneous. The problem happens in redisplay
after going to EOB.
> > JIT Lock is triggered also when font-lock is turned on after the move
> > to end of the buffer. But the difference seems to come from the fact
> > that under scroll-conservatively, we examine the buffer a little bit
> > above/below the window, when we decide where to put window-start.
>
> And somehow a "current position" is still near the end of the buffer at
> that time.
Yes, because Emacs is at EOB.
This bug report was last modified 11 years and 16 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.