From 713d68ee9f47cc8df56e47fa2f54b191bb8c3186 Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Sat, 17 Feb 2018 18:35:15 +0100 Subject: [PATCH] [sfnt] Prefer `CBDT'/`CBLC' over `glyf' table (#53154). --- ChangeLog | 4 ++++ src/sfnt/sfobjs.c | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/ChangeLog b/ChangeLog index e060cbdf7..a8d3f71a4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2018-02-17 Werner Lemberg + + [sfnt] Prefer `CBDT'/`CBLC' over `glyf' table (#53154). + 2018-02-06 Werner Lemberg [truetype] Integer overflow issues. diff --git a/src/sfnt/sfobjs.c b/src/sfnt/sfobjs.c index 0c917030f..6ba8509f5 100644 --- a/src/sfnt/sfobjs.c +++ b/src/sfnt/sfobjs.c @@ -1144,6 +1144,8 @@ FT_Bool has_outline; FT_Bool is_apple_sbit; FT_Bool is_apple_sbix; + FT_Bool has_CBLC; + FT_Bool has_CBDT; FT_Bool ignore_typographic_family = FALSE; FT_Bool ignore_typographic_subfamily = FALSE; @@ -1224,6 +1226,13 @@ goto Exit; } + has_CBLC = !face->goto_table( face, TTAG_CBLC, stream, 0 ); + has_CBDT = !face->goto_table( face, TTAG_CBDT, stream, 0 ); + + /* Ignore outlines for CBLC/CBDT fonts. */ + if ( has_CBLC || has_CBDT ) + has_outline = FALSE; + /* OpenType 1.8.2 introduced limits to this value; */ /* however, they make sense for older SFNT fonts also */ if ( face->header.Units_Per_EM < 16 ||