diff options
author | Dmitry Antipov <dmantipov@yandex.ru> | 2013-10-25 10:55:36 +0400 |
---|---|---|
committer | Dmitry Antipov <dmantipov@yandex.ru> | 2013-10-25 10:55:36 +0400 |
commit | 78e0b35c45892995da596c65759fdece3e67129d (patch) | |
tree | 4e18a2b9f5703f8eb4c7151fc061f4c13892432e /src/macfont.m | |
parent | 963ce6361af7f8b7aefb63e7a50956e497020b12 (diff) |
Omit unused frame argument of font API's close function.
* font.h (struct font): Drop frame argument. Adjust comment.
* font.c (font_clear_cache, font_close_object): Adjust users.
* ftfont.c (ftfont_close):
* ftxfont.c (ftxfont_close):
* macfont.m (macfont_close):
* nsfont.m (nsfont_close):
* w32font.c (w32font_close):
* xfont.c (xfont_close):
* xftfont.c (xftfont_close): Adjust driver-specific close
functions, tweak comments and make functions safe if called
more than once for the same font object.
Diffstat (limited to 'src/macfont.m')
-rw-r--r-- | src/macfont.m | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/src/macfont.m b/src/macfont.m index b3bf96d8c4..150aca0765 100644 --- a/src/macfont.m +++ b/src/macfont.m @@ -1518,7 +1518,7 @@ static Lisp_Object macfont_match (struct frame *, Lisp_Object); static Lisp_Object macfont_list_family (struct frame *); static void macfont_free_entity (Lisp_Object); static Lisp_Object macfont_open (struct frame *, Lisp_Object, int); -static void macfont_close (struct frame *, struct font *); +static void macfont_close (struct font *); static int macfont_has_char (Lisp_Object, int); static unsigned macfont_encode_char (struct font *, int); static int macfont_text_extents (struct font *, unsigned int *, int, @@ -2580,23 +2580,28 @@ macfont_open (struct frame * f, Lisp_Object entity, int pixel_size) } static void -macfont_close (struct frame * f, struct font *font) +macfont_close (struct font *font) { struct macfont_info *macfont_info = (struct macfont_info *) font; - int i; - block_input (); - CFRelease (macfont_info->macfont); - CGFontRelease (macfont_info->cgfont); - if (macfont_info->screen_font) - CFRelease (macfont_info->screen_font); - macfont_release_cache (macfont_info->cache); - for (i = 0; i < macfont_info->metrics_nrows; i++) - if (macfont_info->metrics[i]) - xfree (macfont_info->metrics[i]); - if (macfont_info->metrics) - xfree (macfont_info->metrics); - unblock_input (); + if (macfont_info->cache) + { + int i; + + block_input (); + CFRelease (macfont_info->macfont); + CGFontRelease (macfont_info->cgfont); + if (macfont_info->screen_font) + CFRelease (macfont_info->screen_font); + macfont_release_cache (macfont_info->cache); + macfont_info->cache = NULL; + for (i = 0; i < macfont_info->metrics_nrows; i++) + if (macfont_info->metrics[i]) + xfree (macfont_info->metrics[i]); + if (macfont_info->metrics) + xfree (macfont_info->metrics); + unblock_input (); + } } static int |