diff options
author | Adrian Johnson <ajohnson@redneon.com> | 2015-09-07 22:20:08 +0930 |
---|---|---|
committer | Bryce Harrington <bryce@osg.samsung.com> | 2017-06-15 14:54:46 -0700 |
commit | 0245756c214506a3aa9de550a3c7b1e4702be7cb (patch) | |
tree | 080330a6824f4d452c4480afbbef0e0725342f8c | |
parent | 2f830badefa8287e85b5ed8a670a827e133241f5 (diff) |
cff: opentype fonts always use gid to lookup glyph
Bug 91902
-rw-r--r-- | src/cairo-cff-subset.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/cairo-cff-subset.c b/src/cairo-cff-subset.c index 3ffe6f663..775ca61be 100644 --- a/src/cairo-cff-subset.c +++ b/src/cairo-cff-subset.c @@ -1780,7 +1780,7 @@ cairo_cff_font_subset_charstrings_and_subroutines (cairo_cff_font_t *font) font->subset_subroutines = TRUE; for (i = 0; i < font->scaled_font_subset->num_glyphs; i++) { - if (font->is_cid) { + if (font->is_cid && !font->is_opentype) { cid = font->scaled_font_subset->glyphs[i]; status = cairo_cff_font_get_gid_for_cid (font, cid, &glyph); if (unlikely (status)) @@ -1847,11 +1847,15 @@ cairo_cff_font_subset_fontdict (cairo_cff_font_t *font) font->num_subset_fontdicts = 0; for (i = 0; i < font->scaled_font_subset->num_glyphs; i++) { - cid = font->scaled_font_subset->glyphs[i]; - status = cairo_cff_font_get_gid_for_cid (font, cid, &gid); - if (unlikely (status)) { - free (reverse_map); - return status; + if (font->is_opentype) { + gid = font->scaled_font_subset->glyphs[i]; + } else { + cid = font->scaled_font_subset->glyphs[i]; + status = cairo_cff_font_get_gid_for_cid (font, cid, &gid); + if (unlikely (status)) { + free (reverse_map); + return status; + } } fd = font->fdselect[gid]; |