Use local in CPDF_TrueTypeFont::LoadGlyphMap()
Minimize the textual diffs in an upcoming cl.
Change-Id: I309a99cb2690fd412f4100c397aca48933fa168c
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/55777
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/font/cpdf_truetypefont.cpp b/core/fpdfapi/font/cpdf_truetypefont.cpp
index d0aac08..d107ed0 100644
--- a/core/fpdfapi/font/cpdf_truetypefont.cpp
+++ b/core/fpdfapi/font/cpdf_truetypefont.cpp
@@ -38,19 +38,20 @@
}
void CPDF_TrueTypeFont::LoadGlyphMap() {
- if (!m_Font.GetFaceRec())
+ FXFT_FaceRec* face = m_Font.GetFaceRec();
+ if (!face)
return;
int baseEncoding = m_BaseEncoding;
- if (m_pFontFile && m_Font.GetFaceRec()->num_charmaps > 0 &&
+ if (m_pFontFile && face->num_charmaps > 0 &&
(baseEncoding == PDFFONT_ENCODING_MACROMAN ||
baseEncoding == PDFFONT_ENCODING_WINANSI) &&
FontStyleIsSymbolic(m_Flags)) {
bool bSupportWin = false;
bool bSupportMac = false;
- for (int i = 0; i < FXFT_Get_Face_CharmapCount(m_Font.GetFaceRec()); i++) {
- int platform_id = FXFT_Get_Charmap_PlatformID(
- FXFT_Get_Face_Charmaps(m_Font.GetFaceRec())[i]);
+ for (int i = 0; i < FXFT_Get_Face_CharmapCount(face); i++) {
+ int platform_id =
+ FXFT_Get_Charmap_PlatformID(FXFT_Get_Face_Charmaps(face)[i]);
if (platform_id == 0 || platform_id == 3) {
bSupportWin = true;
} else if (platform_id == 0 || platform_id == 1) {
@@ -69,9 +70,8 @@
baseEncoding == PDFFONT_ENCODING_WINANSI) &&
m_CharNames.empty()) ||
FontStyleIsNonSymbolic(m_Flags)) {
- if (!FXFT_Has_Glyph_Names(m_Font.GetFaceRec()) &&
- (!m_Font.GetFaceRec()->num_charmaps ||
- !m_Font.GetFaceRec()->charmaps)) {
+ if (!FXFT_Has_Glyph_Names(face) &&
+ (!face->num_charmaps || !face->charmaps)) {
int nStartChar = m_pFontDict->GetIntegerFor("FirstChar");
if (nStartChar < 0 || nStartChar > 255)
return;
@@ -84,16 +84,16 @@
m_GlyphIndex[charcode] = nGlyph;
return;
}
- bool bMSUnicode = FT_UseTTCharmap(m_Font.GetFaceRec(), 3, 1);
+ bool bMSUnicode = FT_UseTTCharmap(face, 3, 1);
bool bMacRoman = false;
bool bMSSymbol = false;
if (!bMSUnicode) {
if (FontStyleIsNonSymbolic(m_Flags)) {
- bMacRoman = FT_UseTTCharmap(m_Font.GetFaceRec(), 1, 0);
- bMSSymbol = !bMacRoman && FT_UseTTCharmap(m_Font.GetFaceRec(), 3, 0);
+ bMacRoman = FT_UseTTCharmap(face, 1, 0);
+ bMSSymbol = !bMacRoman && FT_UseTTCharmap(face, 3, 0);
} else {
- bMSSymbol = FT_UseTTCharmap(m_Font.GetFaceRec(), 3, 0);
- bMacRoman = !bMSSymbol && FT_UseTTCharmap(m_Font.GetFaceRec(), 1, 0);
+ bMSSymbol = FT_UseTTCharmap(face, 3, 0);
+ bMacRoman = !bMSSymbol && FT_UseTTCharmap(face, 1, 0);
}
}
bool bToUnicode = m_pFontDict->KeyExist("ToUnicode");
@@ -101,32 +101,29 @@
const char* name = GetAdobeCharName(baseEncoding, m_CharNames, charcode);
if (!name) {
m_GlyphIndex[charcode] =
- m_pFontFile ? FT_Get_Char_Index(m_Font.GetFaceRec(), charcode) : -1;
+ m_pFontFile ? FT_Get_Char_Index(face, charcode) : -1;
continue;
}
m_Encoding.SetUnicode(charcode, PDF_UnicodeFromAdobeName(name));
if (bMSSymbol) {
for (size_t j = 0; j < FX_ArraySize(kPrefix); j++) {
uint16_t unicode = kPrefix[j] * 256 + charcode;
- m_GlyphIndex[charcode] =
- FT_Get_Char_Index(m_Font.GetFaceRec(), unicode);
+ m_GlyphIndex[charcode] = FT_Get_Char_Index(face, unicode);
if (m_GlyphIndex[charcode])
break;
}
} else if (m_Encoding.UnicodeFromCharCode(charcode)) {
if (bMSUnicode) {
- m_GlyphIndex[charcode] = FT_Get_Char_Index(
- m_Font.GetFaceRec(), m_Encoding.UnicodeFromCharCode(charcode));
+ m_GlyphIndex[charcode] =
+ FT_Get_Char_Index(face, m_Encoding.UnicodeFromCharCode(charcode));
} else if (bMacRoman) {
uint32_t maccode =
FT_CharCodeFromUnicode(FT_ENCODING_APPLE_ROMAN,
m_Encoding.UnicodeFromCharCode(charcode));
if (!maccode) {
- m_GlyphIndex[charcode] =
- FXFT_Get_Name_Index(m_Font.GetFaceRec(), name);
+ m_GlyphIndex[charcode] = FXFT_Get_Name_Index(face, name);
} else {
- m_GlyphIndex[charcode] =
- FT_Get_Char_Index(m_Font.GetFaceRec(), maccode);
+ m_GlyphIndex[charcode] = FT_Get_Char_Index(face, maccode);
}
}
}
@@ -135,29 +132,27 @@
continue;
}
if (strcmp(name, ".notdef") == 0) {
- m_GlyphIndex[charcode] = FT_Get_Char_Index(m_Font.GetFaceRec(), 32);
+ m_GlyphIndex[charcode] = FT_Get_Char_Index(face, 32);
continue;
}
- m_GlyphIndex[charcode] = FXFT_Get_Name_Index(m_Font.GetFaceRec(), name);
+ m_GlyphIndex[charcode] = FXFT_Get_Name_Index(face, name);
if (m_GlyphIndex[charcode] != 0 || !bToUnicode)
continue;
WideString wsUnicode = UnicodeFromCharCode(charcode);
if (!wsUnicode.IsEmpty()) {
- m_GlyphIndex[charcode] =
- FT_Get_Char_Index(m_Font.GetFaceRec(), wsUnicode[0]);
+ m_GlyphIndex[charcode] = FT_Get_Char_Index(face, wsUnicode[0]);
m_Encoding.SetUnicode(charcode, wsUnicode[0]);
}
}
return;
}
- if (FT_UseTTCharmap(m_Font.GetFaceRec(), 3, 0)) {
+ if (FT_UseTTCharmap(face, 3, 0)) {
bool bFound = false;
for (int charcode = 0; charcode < 256; charcode++) {
for (size_t j = 0; j < FX_ArraySize(kPrefix); j++) {
uint16_t unicode = kPrefix[j] * 256 + charcode;
- m_GlyphIndex[charcode] =
- FT_Get_Char_Index(m_Font.GetFaceRec(), unicode);
+ m_GlyphIndex[charcode] = FT_Get_Char_Index(face, unicode);
if (m_GlyphIndex[charcode]) {
bFound = true;
break;
@@ -172,7 +167,7 @@
if (name)
m_Encoding.SetUnicode(charcode, PDF_UnicodeFromAdobeName(name));
}
- } else if (FT_UseTTCharmap(m_Font.GetFaceRec(), 1, 0)) {
+ } else if (FT_UseTTCharmap(face, 1, 0)) {
for (int charcode = 0; charcode < 256; charcode++) {
m_Encoding.SetUnicode(
charcode,
@@ -182,10 +177,10 @@
return;
}
}
- if (FT_UseTTCharmap(m_Font.GetFaceRec(), 1, 0)) {
+ if (FT_UseTTCharmap(face, 1, 0)) {
bool bFound = false;
for (int charcode = 0; charcode < 256; charcode++) {
- m_GlyphIndex[charcode] = FT_Get_Char_Index(m_Font.GetFaceRec(), charcode);
+ m_GlyphIndex[charcode] = FT_Get_Char_Index(face, charcode);
m_Encoding.SetUnicode(
charcode, FT_UnicodeFromCharCode(FT_ENCODING_APPLE_ROMAN, charcode));
if (m_GlyphIndex[charcode]) {
@@ -195,7 +190,7 @@
if (m_pFontFile || bFound)
return;
}
- if (FXFT_Select_Charmap(m_Font.GetFaceRec(), FT_ENCODING_UNICODE) == 0) {
+ if (FXFT_Select_Charmap(face, FT_ENCODING_UNICODE) == 0) {
bool bFound = false;
const uint16_t* pUnicodes = PDF_UnicodesForPredefinedCharSet(baseEncoding);
for (uint32_t charcode = 0; charcode < 256; charcode++) {
@@ -208,8 +203,8 @@
else if (pUnicodes)
m_Encoding.SetUnicode(charcode, pUnicodes[charcode]);
}
- m_GlyphIndex[charcode] = FT_Get_Char_Index(
- m_Font.GetFaceRec(), m_Encoding.UnicodeFromCharCode(charcode));
+ m_GlyphIndex[charcode] =
+ FT_Get_Char_Index(face, m_Encoding.UnicodeFromCharCode(charcode));
if (m_GlyphIndex[charcode])
bFound = true;
}