Commit 62c480c9 authored by Jan Djärv's avatar Jan Djärv

Fix wide-int related error and cache error in NS font handling.

* nsfont.m (Vfonts_in_cache): New variable.
(nsfont_open): Use unsignedLongLongValue for cache in case wide ints
are used.  Add cached fonts to Vfonts_in_cache.
(syms_of_nsfont): Initialize and staticpro Vfonts_in_cache.
parent 13373538
2012-10-08 Jan Djärv <jan.h.d@swipnet.se>
* nsfont.m (Vfonts_in_cache): New variable.
(nsfont_open): Use unsignedLongLongValue for cache in case wide ints
are used. Add cached fonts to Vfonts_in_cache.
(syms_of_nsfont): Initialize and staticpro Vfonts_in_cache.
2012-10-08 Juanma Barranquero <lekktu@gmail.com>
* makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now
......
......@@ -53,6 +53,9 @@
extern int ns_tmp_flags;
extern struct nsfont_info *ns_tmp_font;
static Lisp_Object Vfonts_in_cache;
/* font glyph and metrics caching functions, implemented at end */
static void ns_uni_to_glyphs (struct nsfont_info *font_info,
unsigned char block);
......@@ -799,8 +802,7 @@ when setting family in ns_spec_to_descriptor(). */
{
if (NSFONT_TRACE)
fprintf(stderr, "*** nsfont_open CACHE HIT!\n");
/* FIXME: Cast from (unsigned long) to Lisp_Object. */
XHASH (font_object) = [cached unsignedLongValue];
XHASH (font_object) = [cached unsignedLongLongValue];
return font_object;
}
else
......@@ -808,9 +810,13 @@ when setting family in ns_spec_to_descriptor(). */
font_object = font_make_object (VECSIZE (struct nsfont_info),
font_entity, pixel_size);
if (!synthItal)
[fontCache setObject: [NSNumber numberWithUnsignedLong:
(unsigned long) XHASH (font_object)]
forKey: nsfont];
{
[fontCache setObject: [NSNumber
numberWithUnsignedLongLong:
(unsigned long long) XHASH (font_object)]
forKey: nsfont];
Vfonts_in_cache = Fcons (font_object, Vfonts_in_cache);
}
}
font_info = (struct nsfont_info *) XFONT_OBJECT (font_object);
......@@ -1529,4 +1535,7 @@ - (void)setIntAttribute: (NSInteger)attributeTag value: (NSInteger)val
doc: /* Internal use: maps font registry to Unicode script. */);
ascii_printable = NULL;
Vfonts_in_cache = Qnil;
staticpro (&Vfonts_in_cache);
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment