Index: core/fpdfapi/font/fpdf_font.cpp |
diff --git a/core/fpdfapi/font/fpdf_font.cpp b/core/fpdfapi/font/fpdf_font.cpp |
index 1273ff5f6d617107d29a050c09969ff77bc987a4..056204ad7e29adecf5783f1d974797230a6931ee 100644 |
--- a/core/fpdfapi/font/fpdf_font.cpp |
+++ b/core/fpdfapi/font/fpdf_font.cpp |
@@ -199,6 +199,12 @@ CPDF_ToUnicodeMap::CPDF_ToUnicodeMap() : m_pBaseMap(nullptr) {} |
CPDF_ToUnicodeMap::~CPDF_ToUnicodeMap() {} |
+uint32_t CPDF_ToUnicodeMap::GetUnicode() { |
+ FX_SAFE_UINT32 uni = m_MultiCharBuf.GetLength(); |
+ uni = uni * 0x10000 + 0xffff; |
+ return uni.ValueOrDefault(0); |
+} |
+ |
void CPDF_ToUnicodeMap::Load(CPDF_Stream* pStream) { |
CIDSet cid_set = CIDSET_UNKNOWN; |
CPDF_StreamAcc stream; |
@@ -225,10 +231,7 @@ void CPDF_ToUnicodeMap::Load(CPDF_Stream* pStream) { |
if (len == 1) { |
m_Map[srccode] = destcode.GetAt(0); |
} else { |
- FX_SAFE_UINT32 uni = m_MultiCharBuf.GetLength(); |
- uni *= 0x10000; |
- uni += 0xffff; |
- m_Map[srccode] = uni.ValueOrDie(); |
+ m_Map[srccode] = GetUnicode(); |
m_MultiCharBuf.AppendChar(destcode.GetLength()); |
m_MultiCharBuf << destcode; |
} |
@@ -259,10 +262,7 @@ void CPDF_ToUnicodeMap::Load(CPDF_Stream* pStream) { |
if (len == 1) { |
m_Map[code] = destcode.GetAt(0); |
} else { |
- FX_SAFE_UINT32 uni = m_MultiCharBuf.GetLength(); |
- uni *= 0x10000; |
- uni += 0xffff; |
- m_Map[code] = uni.ValueOrDie(); |
+ m_Map[code] = GetUnicode(); |
m_MultiCharBuf.AppendChar(destcode.GetLength()); |
m_MultiCharBuf << destcode; |
} |
@@ -285,10 +285,7 @@ void CPDF_ToUnicodeMap::Load(CPDF_Stream* pStream) { |
} else { |
retcode = StringDataAdd(destcode); |
} |
- FX_SAFE_UINT32 uni = m_MultiCharBuf.GetLength(); |
- uni *= 0x10000; |
- uni += 0xffff; |
- m_Map[code] = uni.ValueOrDie(); |
+ m_Map[code] = GetUnicode(); |
m_MultiCharBuf.AppendChar(retcode.GetLength()); |
m_MultiCharBuf << retcode; |
destcode = retcode; |