Chromium Code Reviews| Index: core/fxcrt/fx_xml_parser.cpp |
| diff --git a/core/fxcrt/fx_xml_parser.cpp b/core/fxcrt/fx_xml_parser.cpp |
| index e6c3543378698d9caf6f13433857983c2902d6f2..bfd0f940e6a21427e60ce1a3c0a08d30a73a3408 100644 |
| --- a/core/fxcrt/fx_xml_parser.cpp |
| +++ b/core/fxcrt/fx_xml_parser.cpp |
| @@ -13,6 +13,62 @@ |
| #include "third_party/base/ptr_util.h" |
| #include "third_party/base/stl_util.h" |
| +namespace { |
| + |
| +#define FXCRTM_XML_CHARTYPE_Normal 0x00 |
|
npm
2016/10/26 18:26:04
Some of these appear to be unused. Remove them
Tom Sepez
2016/10/26 20:47:03
Yes, but they document what the bits are in the by
|
| +#define FXCRTM_XML_CHARTYPE_SpaceChar 0x01 |
| +#define FXCRTM_XML_CHARTYPE_Letter 0x02 |
| +#define FXCRTM_XML_CHARTYPE_Digital 0x04 |
| +#define FXCRTM_XML_CHARTYPE_NameIntro 0x08 |
| +#define FXCRTM_XML_CHARTYPE_NameChar 0x10 |
| +#define FXCRTM_XML_CHARTYPE_HexDigital 0x20 |
| +#define FXCRTM_XML_CHARTYPE_HexLowerLetter 0x40 |
| +#define FXCRTM_XML_CHARTYPE_HexUpperLetter 0x60 |
| +#define FXCRTM_XML_CHARTYPE_HexChar 0x60 |
| + |
| +const uint8_t g_FXCRT_XML_ByteTypes[256] = { |
| + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
| + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
| + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, |
| + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, |
| + 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x08, 0x00, |
| + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x1A, |
| + 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| + 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x18, |
| + 0x00, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| + 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| + 0x1A, 0x1A, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x1A, 0x1A, 0x1A, |
| + 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| + 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| + 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| + 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| + 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| + 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| + 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| + 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| + 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| + 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| + 0x1A, 0x1A, 0x01, 0x01, |
| +}; |
| + |
| +bool g_FXCRT_XML_IsWhiteSpace(uint8_t ch) { |
| + return !!(g_FXCRT_XML_ByteTypes[ch] & FXCRTM_XML_CHARTYPE_SpaceChar); |
| +} |
| + |
| +bool g_FXCRT_XML_IsDigital(uint8_t ch) { |
| + return !!(g_FXCRT_XML_ByteTypes[ch] & FXCRTM_XML_CHARTYPE_Digital); |
| +} |
| + |
| +bool g_FXCRT_XML_IsNameIntro(uint8_t ch) { |
| + return !!(g_FXCRT_XML_ByteTypes[ch] & FXCRTM_XML_CHARTYPE_NameIntro); |
| +} |
| + |
| +bool g_FXCRT_XML_IsNameChar(uint8_t ch) { |
| + return !!(g_FXCRT_XML_ByteTypes[ch] & FXCRTM_XML_CHARTYPE_NameChar); |
| +} |
| + |
| +} // namespace |
| + |
| CXML_DataBufAcc::CXML_DataBufAcc(const uint8_t* pBuffer, size_t size) |
| : m_pBuffer(pBuffer), m_dwSize(size), m_dwCurPos(0) {} |
| @@ -128,94 +184,45 @@ CXML_Parser::~CXML_Parser() { |
| } |
| } |
| -FX_BOOL CXML_Parser::Init(uint8_t* pBuffer, size_t size) { |
| +bool CXML_Parser::Init(uint8_t* pBuffer, size_t size) { |
| m_pDataAcc = new CXML_DataBufAcc(pBuffer, size); |
| - return Init(TRUE); |
| + return Init(true); |
| } |
| -FX_BOOL CXML_Parser::Init(IFX_SeekableReadStream* pFileRead) { |
| + |
| +bool CXML_Parser::Init(IFX_SeekableReadStream* pFileRead) { |
| m_pDataAcc = new CXML_DataStmAcc(pFileRead); |
| - return Init(TRUE); |
| + return Init(true); |
| } |
| -FX_BOOL CXML_Parser::Init(IFX_BufferRead* pBuffer) { |
| - if (!pBuffer) { |
| - return FALSE; |
| - } |
| + |
| +bool CXML_Parser::Init(IFX_BufferRead* pBuffer) { |
| + if (!pBuffer) |
| + return false; |
| + |
| m_pDataAcc = pBuffer; |
| - return Init(FALSE); |
| + return Init(false); |
| } |
| -FX_BOOL CXML_Parser::Init(FX_BOOL bOwndedStream) { |
| + |
| +bool CXML_Parser::Init(bool bOwndedStream) { |
| m_bOwnedStream = bOwndedStream; |
| m_nOffset = 0; |
| return ReadNextBlock(); |
| } |
| -FX_BOOL CXML_Parser::ReadNextBlock() { |
| - if (!m_pDataAcc->ReadNextBlock()) { |
| - return FALSE; |
| - } |
| + |
| +bool CXML_Parser::ReadNextBlock() { |
| + if (!m_pDataAcc->ReadNextBlock()) |
| + return false; |
| + |
| m_pBuffer = m_pDataAcc->GetBlockBuffer(); |
| m_dwBufferSize = m_pDataAcc->GetBlockSize(); |
| m_nBufferOffset = m_pDataAcc->GetBlockOffset(); |
| m_dwIndex = 0; |
| return m_dwBufferSize > 0; |
| } |
| -FX_BOOL CXML_Parser::IsEOF() { |
| - if (!m_pDataAcc->IsEOF()) { |
| - return FALSE; |
| - } |
| - return m_dwIndex >= m_dwBufferSize; |
| -} |
| -#define FXCRTM_XML_CHARTYPE_Normal 0x00 |
| -#define FXCRTM_XML_CHARTYPE_SpaceChar 0x01 |
| -#define FXCRTM_XML_CHARTYPE_Letter 0x02 |
| -#define FXCRTM_XML_CHARTYPE_Digital 0x04 |
| -#define FXCRTM_XML_CHARTYPE_NameIntro 0x08 |
| -#define FXCRTM_XML_CHARTYPE_NameChar 0x10 |
| -#define FXCRTM_XML_CHARTYPE_HexDigital 0x20 |
| -#define FXCRTM_XML_CHARTYPE_HexLowerLetter 0x40 |
| -#define FXCRTM_XML_CHARTYPE_HexUpperLetter 0x60 |
| -#define FXCRTM_XML_CHARTYPE_HexChar 0x60 |
| -uint8_t g_FXCRT_XML_ByteTypes[256] = { |
| - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
| - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, |
| - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, |
| - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, |
| - 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x34, 0x08, 0x00, |
| - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x1A, |
| - 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| - 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x18, |
| - 0x00, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x5A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| - 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| - 0x1A, 0x1A, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x1A, 0x1A, 0x1A, |
| - 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| - 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| - 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| - 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| - 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| - 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| - 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| - 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| - 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| - 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, 0x1A, |
| - 0x1A, 0x1A, 0x01, 0x01, |
| -}; |
| -FX_BOOL g_FXCRT_XML_IsWhiteSpace(uint8_t ch) { |
| - return (g_FXCRT_XML_ByteTypes[ch] & FXCRTM_XML_CHARTYPE_SpaceChar) != 0; |
| -} |
| -FX_BOOL g_FXCRT_XML_IsLetter(uint8_t ch) { |
| - return (g_FXCRT_XML_ByteTypes[ch] & FXCRTM_XML_CHARTYPE_Letter) != 0; |
| -} |
| -FX_BOOL g_FXCRT_XML_IsDigital(uint8_t ch) { |
| - return (g_FXCRT_XML_ByteTypes[ch] & FXCRTM_XML_CHARTYPE_Digital) != 0; |
| -} |
| -FX_BOOL g_FXCRT_XML_IsNameIntro(uint8_t ch) { |
| - return (g_FXCRT_XML_ByteTypes[ch] & FXCRTM_XML_CHARTYPE_NameIntro) != 0; |
| -} |
| -FX_BOOL g_FXCRT_XML_IsNameChar(uint8_t ch) { |
| - return (g_FXCRT_XML_ByteTypes[ch] & FXCRTM_XML_CHARTYPE_NameChar) != 0; |
| -} |
| -FX_BOOL g_FXCRT_XML_IsHexChar(uint8_t ch) { |
| - return (g_FXCRT_XML_ByteTypes[ch] & FXCRTM_XML_CHARTYPE_HexChar) != 0; |
| + |
| +bool CXML_Parser::IsEOF() { |
| + return m_pDataAcc->IsEOF() && m_dwIndex >= m_dwBufferSize; |
| } |
| + |
| void CXML_Parser::SkipWhiteSpaces() { |
| m_nOffset = m_nBufferOffset + (FX_FILESIZE)m_dwIndex; |
| if (IsEOF()) { |