diff options
Diffstat (limited to 'src/macfont.m')
-rw-r--r-- | src/macfont.m | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/src/macfont.m b/src/macfont.m index 09c4ff31c88..59627823fae 100644 --- a/src/macfont.m +++ b/src/macfont.m @@ -35,6 +35,7 @@ Original author: YAMAMOTO Mitsuharu #include "nsterm.h" #include "macfont.h" #include "macuvs.h" +#include "pdumper.h" #include <libkern/OSByteOrder.h> @@ -1029,12 +1030,12 @@ macfont_handle_font_change_notification (CFNotificationCenterRef center, static void macfont_init_font_change_handler (void) { - static bool initialized = false; + static bool xinitialized = false; - if (initialized) + if (xinitialized) return; - initialized = true; + xinitialized = true; CFNotificationCenterAddObserver (CFNotificationCenterGetLocalCenter (), NULL, macfont_handle_font_change_notification, @@ -1646,7 +1647,7 @@ static int macfont_variation_glyphs (struct font *, int c, unsigned variations[256]); static void macfont_filter_properties (Lisp_Object, Lisp_Object); -static struct font_driver const macfont_driver = +static struct font_driver macfont_driver = { .type = LISPSYM_INITIALLY (Qmac_ct), .get_cache = macfont_get_cache, @@ -4028,12 +4029,14 @@ mac_register_font_driver (struct frame *f) } + +static void syms_of_macfont_for_pdumper (void); + void syms_of_macfont (void) { /* Core Text, for macOS. */ DEFSYM (Qmac_ct, "mac-ct"); - register_font_driver (&macfont_driver, NULL); /* The font property key specifying the font design destination. The value is an unsigned integer code: 0 for WYSIWYG, and 1 for Video @@ -4048,4 +4051,18 @@ syms_of_macfont (void) macfont_family_cache = Qnil; staticpro (&macfont_family_cache); + + pdumper_do_now_and_after_load (syms_of_macfont_for_pdumper); +} + +static void +syms_of_macfont_for_pdumper (void) +{ + if (dumped_with_pdumper_p ()) + macfont_family_cache = Qnil; + else + eassert (NILP (macfont_family_cache)); + + macfont_driver.type = Qmac_ct; + register_font_driver (&macfont_driver, NULL); } |