| Index: core/src/fpdfapi/fpdf_font/fpdf_font.cpp
|
| diff --git a/core/src/fpdfapi/fpdf_font/fpdf_font.cpp b/core/src/fpdfapi/fpdf_font/fpdf_font.cpp
|
| index 8eae7cf3f8aaf8e436256bba3fa70ebb876747cb..7f593c7be3eecfc3a45fabbfe1d5de5347f48e4f 100644
|
| --- a/core/src/fpdfapi/fpdf_font/fpdf_font.cpp
|
| +++ b/core/src/fpdfapi/fpdf_font/fpdf_font.cpp
|
| @@ -473,8 +473,9 @@ CPDF_FontCharMap::CPDF_FontCharMap(CPDF_Font* pFont) {
|
| m_pFont = pFont;
|
| }
|
| CFX_WideString CPDF_ToUnicodeMap::Lookup(FX_DWORD charcode) {
|
| - FX_DWORD value;
|
| - if (m_Map.Lookup(charcode, value)) {
|
| + auto it = m_Map.find(charcode);
|
| + if (it != m_Map.end()) {
|
| + FX_DWORD value = it->second;
|
| FX_WCHAR unicode = (FX_WCHAR)(value & 0xffff);
|
| if (unicode != 0xffff) {
|
| return unicode;
|
| @@ -500,13 +501,9 @@ CFX_WideString CPDF_ToUnicodeMap::Lookup(FX_DWORD charcode) {
|
| return CFX_WideString();
|
| }
|
| FX_DWORD CPDF_ToUnicodeMap::ReverseLookup(FX_WCHAR unicode) {
|
| - FX_POSITION pos = m_Map.GetStartPosition();
|
| - while (pos) {
|
| - FX_DWORD key, value;
|
| - m_Map.GetNextAssoc(pos, key, value);
|
| - if ((FX_WCHAR)value == unicode) {
|
| - return key;
|
| - }
|
| + for (const auto& pair : m_Map) {
|
| + if (pair.second == unicode)
|
| + return pair.first;
|
| }
|
| return 0;
|
| }
|
| @@ -599,7 +596,6 @@ void CPDF_ToUnicodeMap::Load(CPDF_Stream* pStream) {
|
| CPDF_StreamAcc stream;
|
| stream.LoadAllData(pStream, FALSE);
|
| CPDF_SimpleParser parser(stream.GetData(), stream.GetSize());
|
| - m_Map.EstimateSize(stream.GetSize() / 8, 1024);
|
| while (1) {
|
| CFX_ByteStringC word = parser.GetWord();
|
| if (word.IsEmpty()) {
|
| @@ -619,9 +615,9 @@ void CPDF_ToUnicodeMap::Load(CPDF_Stream* pStream) {
|
| continue;
|
| }
|
| if (len == 1) {
|
| - m_Map.SetAt(srccode, destcode.GetAt(0));
|
| + m_Map[srccode] = destcode.GetAt(0);
|
| } else {
|
| - m_Map.SetAt(srccode, m_MultiCharBuf.GetLength() * 0x10000 + 0xffff);
|
| + m_Map[srccode] = m_MultiCharBuf.GetLength() * 0x10000 + 0xffff;
|
| m_MultiCharBuf.AppendChar(destcode.GetLength());
|
| m_MultiCharBuf << destcode;
|
| }
|
| @@ -650,9 +646,9 @@ void CPDF_ToUnicodeMap::Load(CPDF_Stream* pStream) {
|
| continue;
|
| }
|
| if (len == 1) {
|
| - m_Map.SetAt(code, destcode.GetAt(0));
|
| + m_Map[code] = destcode.GetAt(0);
|
| } else {
|
| - m_Map.SetAt(code, m_MultiCharBuf.GetLength() * 0x10000 + 0xffff);
|
| + m_Map[code] = m_MultiCharBuf.GetLength() * 0x10000 + 0xffff;
|
| m_MultiCharBuf.AppendChar(destcode.GetLength());
|
| m_MultiCharBuf << destcode;
|
| }
|
| @@ -665,7 +661,7 @@ void CPDF_ToUnicodeMap::Load(CPDF_Stream* pStream) {
|
| if (len == 1) {
|
| value = _StringToCode(start);
|
| for (FX_DWORD code = lowcode; code <= highcode; code++) {
|
| - m_Map.SetAt(code, value++);
|
| + m_Map[code] = value++;
|
| }
|
| } else {
|
| for (FX_DWORD code = lowcode; code <= highcode; code++) {
|
| @@ -675,7 +671,7 @@ void CPDF_ToUnicodeMap::Load(CPDF_Stream* pStream) {
|
| } else {
|
| retcode = _StringDataAdd(destcode);
|
| }
|
| - m_Map.SetAt(code, m_MultiCharBuf.GetLength() * 0x10000 + 0xffff);
|
| + m_Map[code] = m_MultiCharBuf.GetLength() * 0x10000 + 0xffff;
|
| m_MultiCharBuf.AppendChar(retcode.GetLength());
|
| m_MultiCharBuf << retcode;
|
| destcode = retcode;
|
|
|