diff options
author | npm <npm@chromium.org> | 2016-09-15 13:27:21 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-09-15 13:27:21 -0700 |
commit | 84be3a3cfec5107aac9a58ea00b58b733d393c7d (patch) | |
tree | e70d04e86ec278f98abe09d3655f9e63154d6a83 /core/fpdftext/cpdf_textpage.cpp | |
parent | 163a9a6ded2ef483cb81435fc6aefbf6a45a4cb5 (diff) | |
download | pdfium-84be3a3cfec5107aac9a58ea00b58b733d393c7d.tar.xz |
Use ToUnicode mapping even when unicode is 0.
CPDF_Font::UnicodeFromCharcode returns 0 only if ToUnicode map maps the
charcode to 0. CPDF_SimpleFont::UnicodeFromCharcode and CPDF_CID_Font::
UnicodeFromCharCode return 0 only if the call to CPDF_Font returns 0.
In other cases, these methods return an empty string. So when
processing text, a 0 return from the method should not be replaced
with the charcode.
BUG=pdfium:583
Review-Url: https://codereview.chromium.org/2342073002
Diffstat (limited to 'core/fpdftext/cpdf_textpage.cpp')
-rw-r--r-- | core/fpdftext/cpdf_textpage.cpp | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/core/fpdftext/cpdf_textpage.cpp b/core/fpdftext/cpdf_textpage.cpp index c691d4b3a0..1056943292 100644 --- a/core/fpdftext/cpdf_textpage.cpp +++ b/core/fpdftext/cpdf_textpage.cpp @@ -1131,12 +1131,8 @@ void CPDF_TextPage::ProcessTextObject(PDFTEXT_Obj Obj) { spacing = 0; CFX_WideString wstrItem = pFont->UnicodeFromCharCode(item.m_CharCode); bool bNoUnicode = false; - FX_WCHAR wChar = wstrItem.GetAt(0); - if ((wstrItem.IsEmpty() || wChar == 0) && item.m_CharCode) { - if (wstrItem.IsEmpty()) - wstrItem += (FX_WCHAR)item.m_CharCode; - else - wstrItem.SetAt(0, (FX_WCHAR)item.m_CharCode); + if (wstrItem.IsEmpty() && item.m_CharCode) { + wstrItem += static_cast<FX_WCHAR>(item.m_CharCode); bNoUnicode = true; } charinfo.m_Index = -1; |