diff options
-rw-r--r-- | core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp | 5 | ||||
-rw-r--r-- | core/fpdfapi/font/cpdf_font.cpp | 8 | ||||
-rw-r--r-- | core/fpdfapi/font/cpdf_font.h | 2 | ||||
-rw-r--r-- | core/fpdfdoc/cpvt_generateap.cpp | 2 | ||||
-rw-r--r-- | core/fpdftext/cpdf_textpage.cpp | 2 | ||||
-rw-r--r-- | fpdfsdk/fxedit/fxet_ap.cpp | 6 |
6 files changed, 9 insertions, 16 deletions
diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp index 14e4ed32c5..e431b9bf57 100644 --- a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp +++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp @@ -279,9 +279,8 @@ void CPDF_PageContentGenerator::ProcessText(CFX_ByteTextBuf* buf, << " Tf "; CFX_ByteString text; for (uint32_t charcode : pTextObj->m_CharCodes) { - if (charcode == CPDF_Font::kInvalidCharCode) - continue; - pFont->AppendChar(text, charcode); + if (charcode != CPDF_Font::kInvalidCharCode) + pFont->AppendChar(&text, charcode); } *buf << PDF_EncodeString(text, true) << " Tj ET\n"; } diff --git a/core/fpdfapi/font/cpdf_font.cpp b/core/fpdfapi/font/cpdf_font.cpp index 60eb1b361d..a6a661b328 100644 --- a/core/fpdfapi/font/cpdf_font.cpp +++ b/core/fpdfapi/font/cpdf_font.cpp @@ -136,14 +136,10 @@ int CPDF_Font::AppendChar(char* buf, uint32_t charcode) const { return 1; } -void CPDF_Font::AppendChar(CFX_ByteString& str, uint32_t charcode) const { +void CPDF_Font::AppendChar(CFX_ByteString* str, uint32_t charcode) const { char buf[4]; int len = AppendChar(buf, charcode); - if (len == 1) { - str += buf[0]; - } else { - str += CFX_ByteString(buf, len); - } + *str += CFX_ByteStringC(buf, len); } CFX_WideString CPDF_Font::UnicodeFromCharCode(uint32_t charcode) const { diff --git a/core/fpdfapi/font/cpdf_font.h b/core/fpdfapi/font/cpdf_font.h index 8ef68e6031..de29db6e13 100644 --- a/core/fpdfapi/font/cpdf_font.h +++ b/core/fpdfapi/font/cpdf_font.h @@ -66,7 +66,7 @@ class CPDF_Font { CPDF_Dictionary* GetFontDict() const { return m_pFontDict; } bool IsStandardFont() const; FXFT_Face GetFace() const { return m_Font.GetFace(); } - void AppendChar(CFX_ByteString& str, uint32_t charcode) const; + void AppendChar(CFX_ByteString* str, uint32_t charcode) const; void GetFontBBox(FX_RECT& rect) const { rect = m_FontBBox; } int GetTypeAscent() const { return m_Ascent; } diff --git a/core/fpdfdoc/cpvt_generateap.cpp b/core/fpdfdoc/cpvt_generateap.cpp index 7e895e5850..bcd3aa1d00 100644 --- a/core/fpdfdoc/cpvt_generateap.cpp +++ b/core/fpdfdoc/cpvt_generateap.cpp @@ -1338,7 +1338,7 @@ CFX_ByteString CPVT_GenerateAP::GetPDFWordString(IPVT_FontMap* pFontMap, } else { uint32_t dwCharCode = pPDFFont->CharCodeFromUnicode(Word); if (dwCharCode != CPDF_Font::kInvalidCharCode) - pPDFFont->AppendChar(sWord, dwCharCode); + pPDFFont->AppendChar(&sWord, dwCharCode); } } return sWord; diff --git a/core/fpdftext/cpdf_textpage.cpp b/core/fpdftext/cpdf_textpage.cpp index 09e086f856..c81d4fa407 100644 --- a/core/fpdftext/cpdf_textpage.cpp +++ b/core/fpdftext/cpdf_textpage.cpp @@ -624,7 +624,7 @@ int CPDF_TextPage::GetCharWidth(uint32_t charCode, CPDF_Font* pFont) const { return w; CFX_ByteString str; - pFont->AppendChar(str, charCode); + pFont->AppendChar(&str, charCode); if (int w = pFont->GetStringWidth(str.c_str(), 1)) return w; diff --git a/fpdfsdk/fxedit/fxet_ap.cpp b/fpdfsdk/fxedit/fxet_ap.cpp index 448a539581..1576efa89a 100644 --- a/fpdfsdk/fxedit/fxet_ap.cpp +++ b/fpdfsdk/fxedit/fxet_ap.cpp @@ -26,13 +26,11 @@ CFX_ByteString GetPDFWordString(IPVT_FontMap* pFontMap, uint32_t dwCharCode = pPDFFont->IsUnicodeCompatible() ? pPDFFont->CharCodeFromUnicode(Word) : pFontMap->CharCodeFromUnicode(nFontIndex, Word); - if (dwCharCode > 0) { - pPDFFont->AppendChar(sWord, dwCharCode); + pPDFFont->AppendChar(&sWord, dwCharCode); return sWord; } } - - pPDFFont->AppendChar(sWord, Word); + pPDFFont->AppendChar(&sWord, Word); return sWord; } |