Add wrappers for CPDF_Font::FT_UseTTCharmap().
Add wrappers with meaningful names, instead of calling FT_UseTTCharmap()
with cryptic values. Also rename FT_UseTTCharmap() to avoid confusion
because it is not a FreeType function.
Change-Id: Ia11d6c413579b922ee880402e2af756254d1325b
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/91794
Reviewed-by: Nigi <nigi@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/font/cpdf_cidfont.cpp b/core/fpdfapi/font/cpdf_cidfont.cpp
index b460d57..25a8077 100644
--- a/core/fpdfapi/font/cpdf_cidfont.cpp
+++ b/core/fpdfapi/font/cpdf_cidfont.cpp
@@ -710,8 +710,8 @@
return charcode ? static_cast<int>(charcode) : -1;
charcode += 31;
- bool bMSUnicode = FT_UseTTCharmap(face, 3, 1);
- bool bMacRoman = !bMSUnicode && FT_UseTTCharmap(face, 1, 0);
+ bool bMSUnicode = UseTTCharmapMSUnicode(face);
+ bool bMacRoman = !bMSUnicode && UseTTCharmapMacRoman(face);
int iBaseEncoding = PDFFONT_ENCODING_STANDARD;
if (bMSUnicode)
iBaseEncoding = PDFFONT_ENCODING_WINANSI;
diff --git a/core/fpdfapi/font/cpdf_font.cpp b/core/fpdfapi/font/cpdf_font.cpp
index 905f12e..a1c7d55 100644
--- a/core/fpdfapi/font/cpdf_font.cpp
+++ b/core/fpdfapi/font/cpdf_font.cpp
@@ -412,9 +412,9 @@
}
// static
-bool CPDF_Font::FT_UseTTCharmap(FXFT_FaceRec* face,
- int platform_id,
- int encoding_id) {
+bool CPDF_Font::UseTTCharmap(FXFT_FaceRec* face,
+ int platform_id,
+ int encoding_id) {
for (int i = 0; i < face->num_charmaps; i++) {
if (FXFT_Get_Charmap_PlatformID(face->charmaps[i]) == platform_id &&
FXFT_Get_Charmap_EncodingID(face->charmaps[i]) == encoding_id) {
diff --git a/core/fpdfapi/font/cpdf_font.h b/core/fpdfapi/font/cpdf_font.h
index f7f9c36..8e7b694 100644
--- a/core/fpdfapi/font/cpdf_font.h
+++ b/core/fpdfapi/font/cpdf_font.h
@@ -131,9 +131,21 @@
CPDF_Font(CPDF_Document* pDocument, CPDF_Dictionary* pFontDict);
static int TT2PDF(FT_Pos m, FXFT_FaceRec* face);
- static bool FT_UseTTCharmap(FXFT_FaceRec* face,
- int platform_id,
- int encoding_id);
+
+ // Commonly used wrappers for UseTTCharmap().
+ static bool UseTTCharmapMSUnicode(FXFT_FaceRec* face) {
+ return UseTTCharmap(face, 3, 1);
+ }
+ static bool UseTTCharmapMSSymbol(FXFT_FaceRec* face) {
+ return UseTTCharmap(face, 3, 0);
+ }
+ static bool UseTTCharmapMacRoman(FXFT_FaceRec* face) {
+ return UseTTCharmap(face, 1, 0);
+ }
+ static bool UseTTCharmap(FXFT_FaceRec* face,
+ int platform_id,
+ int encoding_id);
+
static const char* GetAdobeCharName(int iBaseEncoding,
const std::vector<ByteString>& charnames,
uint32_t charcode);
diff --git a/core/fpdfapi/font/cpdf_truetypefont.cpp b/core/fpdfapi/font/cpdf_truetypefont.cpp
index 40222fc..e9a85c1 100644
--- a/core/fpdfapi/font/cpdf_truetypefont.cpp
+++ b/core/fpdfapi/font/cpdf_truetypefont.cpp
@@ -58,16 +58,16 @@
SetGlyphIndicesFromFirstChar();
return;
}
- bool bMSUnicode = FT_UseTTCharmap(face, 3, 1);
+ bool bMSUnicode = UseTTCharmapMSUnicode(face);
bool bMacRoman = false;
bool bMSSymbol = false;
if (!bMSUnicode) {
if (FontStyleIsNonSymbolic(m_Flags)) {
- bMacRoman = FT_UseTTCharmap(face, 1, 0);
- bMSSymbol = !bMacRoman && FT_UseTTCharmap(face, 3, 0);
+ bMacRoman = UseTTCharmapMacRoman(face);
+ bMSSymbol = !bMacRoman && UseTTCharmapMSSymbol(face);
} else {
- bMSSymbol = FT_UseTTCharmap(face, 3, 0);
- bMacRoman = !bMSSymbol && FT_UseTTCharmap(face, 1, 0);
+ bMSSymbol = UseTTCharmapMSSymbol(face);
+ bMacRoman = !bMSSymbol && UseTTCharmapMacRoman(face);
}
}
bool bToUnicode = m_pFontDict->KeyExist("ToUnicode");
@@ -121,7 +121,7 @@
}
return;
}
- if (FT_UseTTCharmap(face, 3, 0)) {
+ if (UseTTCharmapMSSymbol(face)) {
bool bFound = false;
for (int charcode = 0; charcode < 256; charcode++) {
for (size_t j = 0; j < pdfium::size(kPrefix); j++) {
@@ -141,7 +141,7 @@
if (name)
m_Encoding.SetUnicode(charcode, PDF_UnicodeFromAdobeName(name));
}
- } else if (FT_UseTTCharmap(face, 1, 0)) {
+ } else if (UseTTCharmapMacRoman(face)) {
for (int charcode = 0; charcode < 256; charcode++) {
m_Encoding.SetUnicode(
charcode,
@@ -151,7 +151,7 @@
return;
}
}
- if (FT_UseTTCharmap(face, 1, 0)) {
+ if (UseTTCharmapMacRoman(face)) {
bool bFound = false;
for (int charcode = 0; charcode < 256; charcode++) {
m_GlyphIndex[charcode] = FT_Get_Char_Index(face, charcode);
diff --git a/core/fpdfapi/font/cpdf_type1font.cpp b/core/fpdfapi/font/cpdf_type1font.cpp
index a7fd61c..84d9e1f 100644
--- a/core/fpdfapi/font/cpdf_type1font.cpp
+++ b/core/fpdfapi/font/cpdf_type1font.cpp
@@ -137,7 +137,7 @@
}
#endif
if (!IsEmbedded() && !IsSymbolicFont() && m_Font.IsTTFont()) {
- if (FT_UseTTCharmap(m_Font.GetFaceRec(), 3, 0)) {
+ if (UseTTCharmapMSSymbol(m_Font.GetFaceRec())) {
bool bGotOne = false;
for (uint32_t charcode = 0; charcode < kInternalTableSize; charcode++) {
const uint8_t prefix[4] = {0x00, 0xf0, 0xf1, 0xf2};