Allow to disable compaction of font caches
* src/font.c (syms_of_font) <inhibit-compacting-font-caches>: New boolean variable. * src/alloc.c (compact_font_caches): Use it to bypass the call to compact_font_cache_entry. (Bug#24634) (Bug#24565) * etc/NEWS: Mention the new variable.
This commit is contained in:
parent
4ff4b66df8
commit
44e402ead3
3 changed files with 24 additions and 1 deletions
6
etc/NEWS
6
etc/NEWS
|
@ -38,6 +38,12 @@ fontsets if the default font supports these characters. Set this
|
||||||
variable to nil to disable the new behavior and get back the old
|
variable to nil to disable the new behavior and get back the old
|
||||||
behavior.
|
behavior.
|
||||||
|
|
||||||
|
---
|
||||||
|
** New variable 'inhibit-compacting-font-caches'.
|
||||||
|
Set this variable to a non-nil value to speed up display of characters
|
||||||
|
using large fonts, at the price of a larger memory footprint of the
|
||||||
|
Emacs session.
|
||||||
|
|
||||||
|
|
||||||
* Installation Changes in Emacs 25.1
|
* Installation Changes in Emacs 25.1
|
||||||
|
|
||||||
|
|
|
@ -5584,7 +5584,11 @@ compact_font_caches (void)
|
||||||
for (t = terminal_list; t; t = t->next_terminal)
|
for (t = terminal_list; t; t = t->next_terminal)
|
||||||
{
|
{
|
||||||
Lisp_Object cache = TERMINAL_FONT_CACHE (t);
|
Lisp_Object cache = TERMINAL_FONT_CACHE (t);
|
||||||
if (CONSP (cache))
|
/* Inhibit compacting the caches if the user so wishes. Some of
|
||||||
|
the users don't mind a larger memory footprint, but do mind
|
||||||
|
slower redisplay. */
|
||||||
|
if (!inhibit_compacting_font_caches
|
||||||
|
&& CONSP (cache))
|
||||||
{
|
{
|
||||||
Lisp_Object entry;
|
Lisp_Object entry;
|
||||||
|
|
||||||
|
|
13
src/font.c
13
src/font.c
|
@ -5430,6 +5430,19 @@ Set it to nil to enable logging. If the environment variable
|
||||||
EMACS_FONT_LOG is set at startup, it defaults to nil. */);
|
EMACS_FONT_LOG is set at startup, it defaults to nil. */);
|
||||||
Vfont_log = Qnil;
|
Vfont_log = Qnil;
|
||||||
|
|
||||||
|
DEFVAR_BOOL ("inhibit-compacting-font-caches", inhibit_compacting_font_caches,
|
||||||
|
doc: /*
|
||||||
|
If non-nil, don't compact font caches during GC.
|
||||||
|
Some large fonts cause lots of consing and trigger GC. If they
|
||||||
|
are removed from the font caches, they will need to be opened
|
||||||
|
again during redisplay, which slows down redisplay. If you
|
||||||
|
see font-related delays in displaying some special characters,
|
||||||
|
and cannot switch to a smaller font for those characters, set
|
||||||
|
this variable non-nil.
|
||||||
|
Disabling compaction of font caches might enlarge the Emacs memory
|
||||||
|
footprint in sessions that use lots of different fonts. */);
|
||||||
|
inhibit_compacting_font_caches = 0;
|
||||||
|
|
||||||
#ifdef HAVE_WINDOW_SYSTEM
|
#ifdef HAVE_WINDOW_SYSTEM
|
||||||
#ifdef HAVE_FREETYPE
|
#ifdef HAVE_FREETYPE
|
||||||
syms_of_ftfont ();
|
syms_of_ftfont ();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue