diff options
author | JUN FANG <jun_fang@foxitsoftware.com> | 2015-03-30 16:24:09 -0700 |
---|---|---|
committer | JUN FANG <jun_fang@foxitsoftware.com> | 2015-03-30 16:24:09 -0700 |
commit | e3dd159edee8cf2eec3f30f77ef6830597c1bc2f (patch) | |
tree | 9abd870dbe36ba15a9c50e657dc539796e2cac0e | |
parent | 84e50d58496622af351cd27da51479059736923d (diff) | |
download | pdfium-e3dd159edee8cf2eec3f30f77ef6830597c1bc2f.tar.xz |
Fix no text displayed issue when font embedded and font subsetting enabledchromium/2356chromium/2355chromium/2354chromium/2353chromium/2352
BUG=465322
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1045553004
-rw-r--r-- | core/src/fxge/ge/fx_ge_text.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/core/src/fxge/ge/fx_ge_text.cpp b/core/src/fxge/ge/fx_ge_text.cpp index aca739afae..2e13c0416c 100644 --- a/core/src/fxge/ge/fx_ge_text.cpp +++ b/core/src/fxge/ge/fx_ge_text.cpp @@ -1336,7 +1336,17 @@ CFX_GlyphBitmap* CFX_FaceCache::RenderGlyph(CFX_Font* pFont, FX_DWORD glyph_inde int load_flags = (m_Face->face_flags & FT_FACE_FLAG_SFNT) ? FXFT_LOAD_NO_BITMAP : (FXFT_LOAD_NO_BITMAP | FT_LOAD_NO_HINTING); int error = FXFT_Load_Glyph(m_Face, glyph_index, load_flags); if (error) { - return NULL; + //if an error is returned, try to reload glyphs without hinting. + if (load_flags & FT_LOAD_NO_HINTING || load_flags & FT_LOAD_NO_SCALE) { + return NULL; + } + + load_flags |= FT_LOAD_NO_HINTING; + error = FXFT_Load_Glyph(m_Face, glyph_index, load_flags); + + if (error) { + return NULL; + } } int weight = 0; if (bUseCJKSubFont) { |