From: Matthias Kramm Date: Thu, 6 May 2010 01:39:51 +0000 (-0700) Subject: only create a unicode2glyph table if explicitly requested X-Git-Tag: version-0-9-1~35 X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=commitdiff_plain;h=22aff003c999ce595128ce66ab4c5369b0b515c2 only create a unicode2glyph table if explicitly requested --- diff --git a/lib/gfxfont.c b/lib/gfxfont.c index e6f96cb..a310bfa 100644 --- a/lib/gfxfont.c +++ b/lib/gfxfont.c @@ -557,7 +557,22 @@ void gfxfont_fix_unicode(gfxfont_t*font) max = u; } free(used); - + if(font->unicode2glyph) { + free(font->unicode2glyph); + } + font->unicode2glyph = 0; + font->max_unicode = 0; +} + +void gfxfont_add_unicode2glyph(gfxfont_t*font) +{ + int t; + int max = 0; + for(t=0;tnum_glyphs;t++) { + int u = font->glyphs[t].unicode; + if(u > max) + max = u; + } if(!font->unicode2glyph) { /* (re)generate unicode2glyph-to-glyph mapping table by reverse mapping the glyph unicode2glyph's indexes into the mapping table. For collisions, diff --git a/lib/gfxfont.h b/lib/gfxfont.h index 0c18a56..a3e1acc 100644 --- a/lib/gfxfont.h +++ b/lib/gfxfont.h @@ -37,6 +37,7 @@ void gfxfont_save(gfxfont_t*font, const char*filename); void gfxfont_save_eot(gfxfont_t*font, const char*filename); void gfxfont_fix_unicode(gfxfont_t*font); void gfxfont_free(gfxfont_t*font); +void gfxfont_add_unicode2glyph(gfxfont_t*font); #ifdef __cplusplus }