From: Jan Djärv Date: Fri, 12 Oct 2012 10:01:05 +0000 (+0200) Subject: * nsfont.m (nsfont_open): Remove font cache, it is not GC correct. X-Git-Tag: emacs-24.2.90~235^2~19 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2b9c2e68501ac897447340bd3f2af8e88f03d767;p=emacs.git * nsfont.m (nsfont_open): Remove font cache, it is not GC correct. --- diff --git a/src/ChangeLog b/src/ChangeLog index 2a66f5df62c..47b2de24844 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2012-10-12 Jan Djärv + + * nsfont.m (nsfont_open): Remove font cache, it is not GC correct. + 2012-10-12 Glenn Morris * buffer.c (Fset_buffer): Doc fix. (Bug#12624) diff --git a/src/nsfont.m b/src/nsfont.m index a820b60ac58..7c9f05aa0bb 100644 --- a/src/nsfont.m +++ b/src/nsfont.m @@ -729,16 +729,6 @@ nsfont_open (FRAME_PTR f, Lisp_Object font_entity, int pixel_size) NSRect brect; Lisp_Object font_object; int fixLeopardBug; - static NSMutableDictionary *fontCache = nil; - NSNumber *cached; - - /* 2008/03/08: The same font may end up being requested for different - entities, due to small differences in numeric values or other issues, - or for different copies of the same entity. Therefore we cache to - avoid creating multiple struct font objects (with metrics cache, etc.) - for the same NSFont object. */ - if (fontCache == nil) - fontCache = [[NSMutableDictionary alloc] init]; if (NSFONT_TRACE) { @@ -794,28 +784,8 @@ nsfont_open (FRAME_PTR f, Lisp_Object font_entity, int pixel_size) if (NSFONT_TRACE) NSLog (@"%@\n", nsfont); - /* Check the cache */ - cached = [fontCache objectForKey: nsfont]; - if (cached != nil && !synthItal) - { - if (NSFONT_TRACE) - fprintf(stderr, "*** nsfont_open CACHE HIT!\n"); - XHASH (font_object) = [cached unsignedLongLongValue]; - return font_object; - } - else - { - font_object = font_make_object (VECSIZE (struct nsfont_info), - font_entity, pixel_size); - if (!synthItal) - { - [fontCache setObject: [NSNumber - numberWithUnsignedLongLong: - (unsigned long long) XHASH (font_object)] - forKey: nsfont]; - } - } - + font_object = font_make_object (VECSIZE (struct nsfont_info), + font_entity, pixel_size); font_info = (struct nsfont_info *) XFONT_OBJECT (font_object); font = (struct font *) font_info; if (!font)