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

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

bug#19266: 24.4; Font-related window redrawing delays on OS X


From: Eli Zaretskii
Subject: bug#19266: 24.4; Font-related window redrawing delays on OS X
Date: Fri, 12 Dec 2014 10:06:20 +0200

> Date: Thu, 11 Dec 2014 21:10:32 -0500
> From: Kirill Ignatiev <kirill.ignatiev@gmail.com>
> Cc: Dmitry Antipov <dmantipov@yandex.ru>, Sebastian Wiesner 
> <swiesner@lunaryorn.com>, 19266@debbugs.gnu.org
> 
> On 11 December 2014 at 12:45, Eli Zaretskii <eliz@gnu.org> wrote:
> >> Date: Wed, 10 Dec 2014 18:50:01 -0500
> >> From: Kirill Ignatiev <kirill.ignatiev@gmail.com>
> >> Cc: Sebastian Wiesner <swiesner@lunaryorn.com>, 19266@debbugs.gnu.org
> >
> > Comment out the call to cleanup_vector?
> 
> Oops, I only tried to turn compact_font_cache_entry into a noop. But
> neither that, nor doing nothing in cleanup_vector works. If I comment
> out drv->close, I see a bunch of calls to drv->close not being made,
> but new fonts are *still* being opened in font_open_entity.
> 
> I'm guessing that when fonts are garbage collected, they are already
> genuinely discarded, not pointed to from elisp structures (or where
> they are stored), and are genuine garbage. Do you know where the
> pointers to fonts live? I haven't figured out where they are being
> discarded, and I'd like to stop them from becoming garbage in the
> first place.

Look up the call chain (best done by setting a breakpoint and looking
at the backtrace), and you will certainly find a place which decides
to discard them.  Then comment out or change the code which does that.

> >> How do I trigger font garbage collection manually?
> >
> > Did you try "M-x garbage-collect RET"?
> 
> Yes, but it doesn't seem to trigger closing fonts. Perhaps there is
> some other process at work there?

Again, look at the backtrace at a breakpoint in cleanup_vector and in
compact_font_cache_entry.  Isn't there some GC-related function on the
callstack?  Perhaps post that here, if you cannot figure that out.





reply via email to

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