Avoid string allocs for CMap_GetString() return value.
StringC's are all that's needed here. Also CMap_GetString()
and GetCode() are side-effect free, so remove calls where
the value is not used.
Review URL: https://codereview.chromium.org/1889003002
diff --git a/core/fpdfapi/fpdf_font/cpdf_cidfont.cpp b/core/fpdfapi/fpdf_font/cpdf_cidfont.cpp
index 034f6f6..6089e75 100644
--- a/core/fpdfapi/fpdf_font/cpdf_cidfont.cpp
+++ b/core/fpdfapi/fpdf_font/cpdf_cidfont.cpp
@@ -401,7 +401,8 @@
if (m_Charset == CIDSET_UNKNOWN) {
CPDF_Dictionary* pCIDInfo = pCIDFontDict->GetDictBy("CIDSystemInfo");
if (pCIDInfo) {
- m_Charset = CharsetFromOrdering(pCIDInfo->GetStringBy("Ordering"));
+ m_Charset =
+ CharsetFromOrdering(pCIDInfo->GetStringBy("Ordering").AsStringC());
}
}
if (m_Charset != CIDSET_UNKNOWN)
diff --git a/core/fpdfapi/fpdf_font/font_int.h b/core/fpdfapi/fpdf_font/font_int.h
index fc69b0c..792377e 100644
--- a/core/fpdfapi/fpdf_font/font_int.h
+++ b/core/fpdfapi/fpdf_font/font_int.h
@@ -22,7 +22,7 @@
short TT2PDF(int m, FXFT_Face face);
FX_BOOL FT_UseTTCharmap(FXFT_Face face, int platform_id, int encoding_id);
-CIDSet CharsetFromOrdering(const CFX_ByteString& ordering);
+CIDSet CharsetFromOrdering(const CFX_ByteStringC& ordering);
class CPDF_CMapManager {
public:
diff --git a/core/fpdfapi/fpdf_font/fpdf_font_cid.cpp b/core/fpdfapi/fpdf_font/fpdf_font_cid.cpp
index f84fa9f..d5fe4df 100644
--- a/core/fpdfapi/fpdf_font/fpdf_font_cid.cpp
+++ b/core/fpdfapi/fpdf_font/fpdf_font_cid.cpp
@@ -190,7 +190,7 @@
return static_cast<CIDSet>(index);
}
-CFX_ByteString CMap_GetString(const CFX_ByteStringC& word) {
+CFX_ByteStringC CMap_GetString(const CFX_ByteStringC& word) {
return word.Mid(1, word.GetLength() - 2);
}
@@ -407,13 +407,11 @@
}
m_CodeSeq = 0;
} else if (m_Status == 3) {
- CMap_GetString(word);
m_Status = 0;
} else if (m_Status == 4) {
m_pCMap->m_Charset = CharsetFromOrdering(CMap_GetString(word));
m_Status = 0;
} else if (m_Status == 5) {
- CMap_GetCode(word);
m_Status = 0;
} else if (m_Status == 6) {
m_pCMap->m_bVertical = CMap_GetCode(word);
@@ -788,9 +786,9 @@
FPDFAPI_LoadCID2UnicodeMap(charset, m_pEmbeddedMap, m_EmbeddedCount);
}
-CIDSet CharsetFromOrdering(const CFX_ByteString& ordering) {
+CIDSet CharsetFromOrdering(const CFX_ByteStringC& ordering) {
for (size_t charset = 1; charset < FX_ArraySize(g_CharsetNames); ++charset) {
- if (ordering == CFX_ByteStringC(g_CharsetNames[charset]))
+ if (ordering == g_CharsetNames[charset])
return CIDSetFromSizeT(charset);
}
return CIDSET_UNKNOWN;