Index: core/src/fxcrt/fx_xml_parser.cpp |
diff --git a/core/src/fxcrt/fx_xml_parser.cpp b/core/src/fxcrt/fx_xml_parser.cpp |
index dc59ded2b74ae87bd0a6e9b3ba1dce0133e32ee8..845fd84cfd1e9ffef365dcd9c259dccae86ec37a 100644 |
--- a/core/src/fxcrt/fx_xml_parser.cpp |
+++ b/core/src/fxcrt/fx_xml_parser.cpp |
@@ -5,7 +5,9 @@ |
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
#include "../../include/fxcrt/fx_xml.h" |
+#include "../../include/fxcrt/fx_ext.h" |
#include "xml_int.h" |
+ |
CXML_Parser::~CXML_Parser() { |
if (m_bOwnedStream) { |
m_pDataAcc->Release(); |
@@ -226,9 +228,8 @@ FX_DWORD CXML_Parser::GetCharRef() { |
iState = 10; |
break; |
} |
- if (g_FXCRT_XML_IsDigital(ch)) { |
- code = code * 10 + ch - '0'; |
- } |
+ if (g_FXCRT_XML_IsDigital(ch)) |
+ code = code * 10 + FXSYS_toDecimalDigit(ch); |
break; |
case 4: |
m_dwIndex++; |
@@ -240,7 +241,7 @@ FX_DWORD CXML_Parser::GetCharRef() { |
g_FXCRT_XML_ByteTypes[ch] & FXCRTM_XML_CHARTYPE_HexChar; |
if (nHex) { |
if (nHex == FXCRTM_XML_CHARTYPE_HexDigital) { |
- code = (code << 4) + ch - '0'; |
+ code = (code << 4) + FXSYS_toDecimalDigit(ch); |
} else if (nHex == FXCRTM_XML_CHARTYPE_HexLowerLetter) { |
code = (code << 4) + ch - 87; |
} else { |