summaryrefslogtreecommitdiff
path: root/core/fxcrt/xml_int.h
diff options
context:
space:
mode:
authorweili <weili@chromium.org>2016-06-14 17:21:14 -0700
committerCommit bot <commit-bot@chromium.org>2016-06-14 17:21:14 -0700
commitf4bb580add3824196dc49cd7de2f7d051019ede8 (patch)
tree15c1db6fb7000330d48c105c66acf1d468ba56bd /core/fxcrt/xml_int.h
parentee2abec93f22bd10522181dc0362f24d389fc66b (diff)
downloadpdfium-f4bb580add3824196dc49cd7de2f7d051019ede8.tar.xz
Make code compile with clang_use_chrome_plugin (part II)
This change contains files in core directory which were not covered in part I. This is part of the efforts to make PDFium code compilable by Clang chromium style plugins. The changes are mainly the following: -- move inline constructor/destructor of complex class/struct out-of-line; -- add constructor/destructor of complex class/struct if not explicitly defined; -- add explicit out-of-line copy constructor when needed; -- move inline virtual functions out-of-line; -- Properly mark virtual functions with 'override'; -- some minor cleanups; BUG=pdfium:469 Review-Url: https://codereview.chromium.org/2060913003
Diffstat (limited to 'core/fxcrt/xml_int.h')
-rw-r--r--core/fxcrt/xml_int.h95
1 files changed, 33 insertions, 62 deletions
diff --git a/core/fxcrt/xml_int.h b/core/fxcrt/xml_int.h
index 6d3db4f525..121441b0c4 100644
--- a/core/fxcrt/xml_int.h
+++ b/core/fxcrt/xml_int.h
@@ -16,28 +16,18 @@ class CXML_Element;
class CXML_DataBufAcc : public IFX_BufferRead {
public:
- CXML_DataBufAcc(const uint8_t* pBuffer, size_t size)
- : m_pBuffer(pBuffer), m_dwSize(size), m_dwCurPos(0) {}
- ~CXML_DataBufAcc() override {}
+ CXML_DataBufAcc(const uint8_t* pBuffer, size_t size);
+ ~CXML_DataBufAcc() override;
// IFX_BufferRead
- void Release() override { delete this; }
- FX_BOOL IsEOF() override { return m_dwCurPos >= m_dwSize; }
- FX_FILESIZE GetPosition() override { return (FX_FILESIZE)m_dwCurPos; }
- size_t ReadBlock(void* buffer, size_t size) override { return 0; }
- FX_BOOL ReadNextBlock(FX_BOOL bRestart = FALSE) override {
- if (bRestart) {
- m_dwCurPos = 0;
- }
- if (m_dwCurPos < m_dwSize) {
- m_dwCurPos = m_dwSize;
- return TRUE;
- }
- return FALSE;
- }
- const uint8_t* GetBlockBuffer() override { return m_pBuffer; }
- size_t GetBlockSize() override { return m_dwSize; }
- FX_FILESIZE GetBlockOffset() override { return 0; }
+ void Release() override;
+ FX_BOOL IsEOF() override;
+ FX_FILESIZE GetPosition() override;
+ size_t ReadBlock(void* buffer, size_t size) override;
+ FX_BOOL ReadNextBlock(FX_BOOL bRestart = FALSE) override;
+ const uint8_t* GetBlockBuffer() override;
+ size_t GetBlockSize() override;
+ FX_FILESIZE GetBlockOffset() override;
protected:
const uint8_t* m_pBuffer;
@@ -47,40 +37,18 @@ class CXML_DataBufAcc : public IFX_BufferRead {
class CXML_DataStmAcc : public IFX_BufferRead {
public:
- explicit CXML_DataStmAcc(IFX_FileRead* pFileRead)
- : m_pFileRead(pFileRead), m_pBuffer(nullptr), m_nStart(0), m_dwSize(0) {
- ASSERT(m_pFileRead);
- }
- ~CXML_DataStmAcc() override { FX_Free(m_pBuffer); }
-
- void Release() override { delete this; }
- FX_BOOL IsEOF() override {
- return m_nStart + (FX_FILESIZE)m_dwSize >= m_pFileRead->GetSize();
- }
- FX_FILESIZE GetPosition() override {
- return m_nStart + (FX_FILESIZE)m_dwSize;
- }
- size_t ReadBlock(void* buffer, size_t size) override { return 0; }
- FX_BOOL ReadNextBlock(FX_BOOL bRestart = FALSE) override {
- if (bRestart) {
- m_nStart = 0;
- }
- FX_FILESIZE nLength = m_pFileRead->GetSize();
- m_nStart += (FX_FILESIZE)m_dwSize;
- if (m_nStart >= nLength) {
- return FALSE;
- }
- static const FX_FILESIZE FX_XMLDATASTREAM_BufferSize = 32 * 1024;
- m_dwSize = static_cast<size_t>(
- std::min(FX_XMLDATASTREAM_BufferSize, nLength - m_nStart));
- if (!m_pBuffer) {
- m_pBuffer = FX_Alloc(uint8_t, m_dwSize);
- }
- return m_pFileRead->ReadBlock(m_pBuffer, m_nStart, m_dwSize);
- }
- const uint8_t* GetBlockBuffer() override { return (const uint8_t*)m_pBuffer; }
- size_t GetBlockSize() override { return m_dwSize; }
- FX_FILESIZE GetBlockOffset() override { return m_nStart; }
+ explicit CXML_DataStmAcc(IFX_FileRead* pFileRead);
+ ~CXML_DataStmAcc() override;
+
+ // IFX_BufferRead
+ void Release() override;
+ FX_BOOL IsEOF() override;
+ FX_FILESIZE GetPosition() override;
+ size_t ReadBlock(void* buffer, size_t size) override;
+ FX_BOOL ReadNextBlock(FX_BOOL bRestart = FALSE) override;
+ const uint8_t* GetBlockBuffer() override;
+ size_t GetBlockSize() override;
+ FX_FILESIZE GetBlockOffset() override;
protected:
IFX_FileRead* m_pFileRead;
@@ -91,15 +59,9 @@ class CXML_DataStmAcc : public IFX_BufferRead {
class CXML_Parser {
public:
+ CXML_Parser();
~CXML_Parser();
- IFX_BufferRead* m_pDataAcc;
- FX_BOOL m_bOwnedStream;
- FX_FILESIZE m_nOffset;
- FX_BOOL m_bSaveSpaceChars;
- const uint8_t* m_pBuffer;
- size_t m_dwBufferSize;
- FX_FILESIZE m_nBufferOffset;
- size_t m_dwIndex;
+
FX_BOOL Init(uint8_t* pBuffer, size_t size);
FX_BOOL Init(IFX_FileRead* pFileRead);
FX_BOOL Init(IFX_BufferRead* pBuffer);
@@ -121,6 +83,15 @@ class CXML_Parser {
const CFX_WideStringC& content,
CXML_Element* pElement);
void InsertCDATASegment(CFX_UTF8Decoder& decoder, CXML_Element* pElement);
+
+ IFX_BufferRead* m_pDataAcc;
+ FX_BOOL m_bOwnedStream;
+ FX_FILESIZE m_nOffset;
+ FX_BOOL m_bSaveSpaceChars;
+ const uint8_t* m_pBuffer;
+ size_t m_dwBufferSize;
+ FX_FILESIZE m_nBufferOffset;
+ size_t m_dwIndex;
};
void FX_XML_SplitQualifiedName(const CFX_ByteStringC& bsFullName,