Index: src/ports/SkFontHost_FreeType.cpp |
diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp |
index 6681c9c1ef4f42b0a448cebf644a7c14ac6f6c0c..84a74af469b35b81f01d9fb168982065f478092b 100644 |
--- a/src/ports/SkFontHost_FreeType.cpp |
+++ b/src/ports/SkFontHost_FreeType.cpp |
@@ -447,7 +447,10 @@ static void populate_glyph_to_unicode(FT_Face& face, SkTDArray<SkUnichar>* glyph |
SkUnichar charCode = FT_Get_First_Char(face, &glyphIndex); |
while (glyphIndex) { |
SkASSERT(glyphIndex < SkToUInt(numGlyphs)); |
- (*glyphToUnicode)[glyphIndex] = charCode; |
+ // Use the first character that maps to this glyphID. https://crbug.com/359065 |
+ if (0 == (*glyphToUnicode)[glyphIndex]) { |
+ (*glyphToUnicode)[glyphIndex] = charCode; |
+ } |
charCode = FT_Get_Next_Char(face, charCode, &glyphIndex); |
} |
} |