diff --git a/src/alloc.c b/src/alloc.c index 1019c2a..2c01fb8 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -2996,6 +2996,7 @@ cleanup_vector (struct Lisp_Vector *vector) /* Attempt to catch subtle bugs like Bug#16140. */ eassert (valid_font_driver (drv)); drv->close ((struct font *) vector); + fprintf(stderr, "cleanup_vector: drv->close %p\n", (struct font *) vector); } } } @@ -5438,6 +5439,7 @@ static Lisp_Object compact_font_cache_entry (Lisp_Object entry) { Lisp_Object tail, *prev = &entry; + int count_dropped = 0; for (tail = entry; CONSP (tail); tail = XCDR (tail)) { @@ -5461,11 +5463,13 @@ compact_font_cache_entry (Lisp_Object entry) if (i == size) drop = 1; } + count_dropped += drop; if (drop) *prev = XCDR (tail); else prev = xcdr_addr (tail); } + if (count_dropped) fprintf(stderr, "compact_font_cache_entry: dropped %d entries\n", count_dropped); return entry; } diff --git a/src/font.c b/src/font.c index 70e6316..7f83acc 100644 --- a/src/font.c +++ b/src/font.c @@ -2663,6 +2663,7 @@ font_clear_cache (struct frame *f, Lisp_Object cache, struct font_driver *driver { eassert (font && driver == font->driver); driver->close (font); + fprintf(stderr, "font_clear_cache: driver->close %p\n", font); } } if (driver->free_entity) @@ -2951,6 +2952,7 @@ font_open_entity (struct frame *f, Lisp_Object entity, int pixel_size) } #endif + fprintf(stderr, "font_open_entity: %p %ld %d => %ld\n", f, entity, pixel_size, font_object); return font_object; } @@ -2971,6 +2973,8 @@ font_close_object (struct frame *f, Lisp_Object font_object) eassert (FRAME_DISPLAY_INFO (f)->n_fonts); FRAME_DISPLAY_INFO (f)->n_fonts--; #endif + + fprintf(stderr, "font_close_object: %p %ld\n", f, font_object); } diff --git a/src/macfont.m b/src/macfont.m index 7054839..9104352 100644 --- a/src/macfont.m +++ b/src/macfont.m @@ -2440,8 +2440,10 @@ macfont_open (struct frame * f, Lisp_Object entity, int pixel_size) val = assq_no_quit (QCfont_entity, AREF (entity, FONT_EXTRA_INDEX)); if (! CONSP (val) || XTYPE (XCDR (val)) != Lisp_Misc - || XMISCTYPE (XCDR (val)) != Lisp_Misc_Save_Value) + || XMISCTYPE (XCDR (val)) != Lisp_Misc_Save_Value) { + // fprintf(stderr, "macfont_open: %p, %ld, %d => %ld\n", f, entity, pixel_size, Qnil); return Qnil; + } font_name = XSAVE_POINTER (XCDR (val), 0); sym_traits = XSAVE_INTEGER (XCDR (val), 1); @@ -2457,8 +2459,10 @@ macfont_open (struct frame * f, Lisp_Object entity, int pixel_size) if (fontsize != size) size = fontsize; } unblock_input (); - if (! macfont) + if (! macfont) { + // fprintf(stderr, "macfont_open: %p, %ld, %d => %ld\n", f, entity, pixel_size, Qnil); return Qnil; + } font_object = font_build_object (VECSIZE (struct macfont_info), Qmac_ct, entity, size); @@ -2580,6 +2584,7 @@ macfont_open (struct frame * f, Lisp_Object entity, int pixel_size) font->default_ascent = 0; font->vertical_centering = 0; + // fprintf(stderr, "macfont_open: %p, %ld, %d => %ld\n", f, entity, pixel_size, Qnil); return font_object; } @@ -2588,6 +2593,8 @@ macfont_close (struct font *font) { struct macfont_info *macfont_info = (struct macfont_info *) font; + // fprintf(stderr, "macfont_close: %p\n", font); + if (macfont_info->cache) { int i;