diff options
Diffstat (limited to 'Build/source/texk/ttfdump/libttf/font.c')
-rw-r--r-- | Build/source/texk/ttfdump/libttf/font.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/Build/source/texk/ttfdump/libttf/font.c b/Build/source/texk/ttfdump/libttf/font.c index 0ee6c25ec02..8b5e0d0a247 100644 --- a/Build/source/texk/ttfdump/libttf/font.c +++ b/Build/source/texk/ttfdump/libttf/font.c @@ -42,6 +42,7 @@ void ttfLoadFont(TTFontPtr font, ULONG offset) ttfLoadRequiredTables(font); ttfLoadOptionalTables(font); + ttfLoadOpenTypeTables(font); ttfInitInterpreter(font); @@ -55,6 +56,8 @@ void ttfFreeFont(TTFontPtr font) ttfFreeOptionalTables(font); + ttfFreeOpenTypeTables(font); + ttfFreeTableDir(font->dir); free(font->refcount); free(font); @@ -67,7 +70,6 @@ void ttfLoadRequiredTables(TTFontPtr font) ttfInitMAXP(font); ttfInitHEAD(font); - ttfInitLOCA(font); ttfInitGlyphCache(font); ttfInitGLYF(font); @@ -85,7 +87,6 @@ void ttfFreeRequiredTables(TTFontPtr font) ttfFreeNAME(font->name); ttfCleanUpGlyphCache(font); - ttfFreeLOCA(font->loca); ttfFreeHEAD(font->head); ttfFreeMAXP(font->maxp); @@ -103,6 +104,7 @@ void ttfLoadOptionalTables(TTFontPtr font) ttfInitGASP(font); ttfInitHDMX(font); ttfInitKERN(font); + ttfInitLOCA(font); ttfInitPREP(font); ttfInitLTSH(font); ttfInitPCLT(font); @@ -117,6 +119,7 @@ void ttfFreeOptionalTables(TTFontPtr font) ttfFreeGASP(font->gasp); ttfFreeHDMX(font->hdmx); ttfFreeKERN(font->kern); + ttfFreeLOCA(font->loca); ttfFreePREP(font->prep); ttfFreeLTSH(font->ltsh); ttfFreePCLT(font->pclt); @@ -125,6 +128,17 @@ void ttfFreeOptionalTables(TTFontPtr font) ttfFreeVMTX(font->vmtx); } +void ttfLoadOpenTypeTables(TTFontPtr font) +{ + ttfInitGPOS(font); + ttfInitGSUB(font); +} +void ttfFreeOpenTypeTables(TTFontPtr font) +{ + ttfFreeGPOS(font->gpos); + ttfFreeGSUB(font->gsub); +} + #if 0 /* Not used */ /* make a clone of the origional font |