diff options
author | Dmitry Antipov <dmantipov@yandex.ru> | 2013-12-12 18:26:06 +0400 |
---|---|---|
committer | Dmitry Antipov <dmantipov@yandex.ru> | 2013-12-12 18:26:06 +0400 |
commit | cf86e18b159f754d6e5537b7b9cbefc32297f7d2 (patch) | |
tree | b584773b90d5cb4c5993cc194037686110a89e36 /src/font.h | |
parent | c4246a6008ef0c69db296df4aab95530f8e2b95e (diff) | |
download | emacs-cf86e18b159f754d6e5537b7b9cbefc32297f7d2.tar.gz |
* font.h (struct font_entity) [HAVE_NS]: New field to record
font driver which was used to create this entity.
(struct font) [HAVE_WINDOW_SYSTEM]: New field to record
frame where the font was opened.
(font_close_object): Add prototype.
* font.c (font_make_entity) [HAVE_NS]: Zero out driver field.
(font_close_object): Not static any more. Lost frame arg.
Adjust comment and users.
* alloc.c (cleanup_vector): Call font_close_object to adjust
per-frame font counters correctly. If HAVE_NS, also call
driver-specific cleanup for font-entity objects.
* ftfont.c (ftfont_open):
* nsfont.m (nsfont_open):
* w32font.c (w32font_open_internal):
* xfont.c (xfont_open):
* xftfont.c (xftfont_open): Save frame pointer in font object.
* macfont.m (macfont_open): Likewise.
(macfont_descriptor_entity): Save driver pointer to be able
to call its free_entity routine when font-entity is swept.
* ftxfont.c (ftxfont_open): Add eassert because frame
pointer should be saved by ftfont_driver.open.
Diffstat (limited to 'src/font.h')
-rw-r--r-- | src/font.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/font.h b/src/font.h index 539ebeba52a..7781816860a 100644 --- a/src/font.h +++ b/src/font.h @@ -265,6 +265,9 @@ struct font_entity { struct vectorlike_header header; Lisp_Object props[FONT_ENTITY_MAX]; +#ifdef HAVE_NS + struct font_driver *driver; +#endif }; /* A value which may appear in the member `encoding' of struct font @@ -316,6 +319,9 @@ struct font #if defined (HAVE_WINDOW_SYSTEM) + /* The frame where the font was opened. */ + struct frame *frame; + /* Vertical pixel width of the underline. If is zero if that information is not in the font. */ int underline_thickness; @@ -735,6 +741,7 @@ extern Lisp_Object merge_font_spec (Lisp_Object, Lisp_Object); extern Lisp_Object font_make_entity (void); extern Lisp_Object font_make_object (int, Lisp_Object, int); +extern void font_close_object (Lisp_Object); extern Lisp_Object find_font_encoding (Lisp_Object); extern int font_registry_charsets (Lisp_Object, struct charset **, |