diff options
-rw-r--r-- | core/fpdfapi/parser/cpdf_parser_unittest.cpp | 10 | ||||
-rw-r--r-- | core/fxcrt/extension.h | 33 | ||||
-rw-r--r-- | core/fxcrt/fx_basic_buffer.cpp | 2 | ||||
-rw-r--r-- | core/fxcrt/fx_extension.cpp | 76 | ||||
-rw-r--r-- | core/fxcrt/fx_stream.h | 44 | ||||
-rw-r--r-- | core/fxcrt/fx_xml_parser.cpp | 179 | ||||
-rw-r--r-- | core/fxcrt/fxcrt_posix.cpp | 38 | ||||
-rw-r--r-- | core/fxcrt/fxcrt_posix.h | 10 | ||||
-rw-r--r-- | core/fxcrt/fxcrt_stream.cpp | 6 | ||||
-rw-r--r-- | core/fxcrt/fxcrt_windows.cpp | 101 | ||||
-rw-r--r-- | core/fxcrt/fxcrt_windows.h | 8 | ||||
-rw-r--r-- | core/fxcrt/xml_int.h | 24 | ||||
-rw-r--r-- | fpdfsdk/fpdf_dataavail.cpp | 6 | ||||
-rw-r--r-- | fpdfsdk/fpdfsave.cpp | 16 | ||||
-rw-r--r-- | fpdfsdk/fpdfview.cpp | 56 | ||||
-rw-r--r-- | fpdfsdk/fsdk_define.h | 12 | ||||
-rw-r--r-- | xfa/fgas/crt/fgas_stream.cpp | 17 | ||||
-rw-r--r-- | xfa/fgas/crt/fgas_stream.h | 8 | ||||
-rw-r--r-- | xfa/fxfa/app/xfa_ffapp.cpp | 8 | ||||
-rw-r--r-- | xfa/fxfa/xfa_ffapp.h | 2 |
20 files changed, 339 insertions, 317 deletions
diff --git a/core/fpdfapi/parser/cpdf_parser_unittest.cpp b/core/fpdfapi/parser/cpdf_parser_unittest.cpp index 6c6fb213f4..239332784e 100644 --- a/core/fpdfapi/parser/cpdf_parser_unittest.cpp +++ b/core/fpdfapi/parser/cpdf_parser_unittest.cpp @@ -22,14 +22,14 @@ class CFX_TestBufferRead : public IFX_SeekableReadStream { void Release() override { delete this; } // IFX_SeekableReadStream - FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override { - if (offset < 0 || offset + size > total_size_) { - return FALSE; - } + bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override { + if (offset < 0 || offset + size > total_size_) + return false; memcpy(buffer, buffer_ + offset, size); - return TRUE; + return true; } + FX_FILESIZE GetSize() override { return (FX_FILESIZE)total_size_; }; protected: diff --git a/core/fxcrt/extension.h b/core/fxcrt/extension.h index 45f6d4f2f0..5b1801bb1b 100644 --- a/core/fxcrt/extension.h +++ b/core/fxcrt/extension.h @@ -18,8 +18,8 @@ class IFXCRT_FileAccess { static IFXCRT_FileAccess* Create(); virtual ~IFXCRT_FileAccess() {} - virtual FX_BOOL Open(const CFX_ByteStringC& fileName, uint32_t dwMode) = 0; - virtual FX_BOOL Open(const CFX_WideStringC& fileName, uint32_t dwMode) = 0; + virtual bool Open(const CFX_ByteStringC& fileName, uint32_t dwMode) = 0; + virtual bool Open(const CFX_WideStringC& fileName, uint32_t dwMode) = 0; virtual void Close() = 0; virtual FX_FILESIZE GetSize() const = 0; virtual FX_FILESIZE GetPosition() const = 0; @@ -30,8 +30,8 @@ class IFXCRT_FileAccess { virtual size_t WritePos(const void* pBuffer, size_t szBuffer, FX_FILESIZE pos) = 0; - virtual FX_BOOL Flush() = 0; - virtual FX_BOOL Truncate(FX_FILESIZE szFile) = 0; + virtual bool Flush() = 0; + virtual bool Truncate(FX_FILESIZE szFile) = 0; }; #ifdef PDF_ENABLE_XFA @@ -63,14 +63,12 @@ class CFX_CRTFileStream final : public IFX_SeekableStream { IFX_SeekableStream* Retain() override; void Release() override; FX_FILESIZE GetSize() override; - FX_BOOL IsEOF() override; + bool IsEOF() override; FX_FILESIZE GetPosition() override; - FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override; + bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override; size_t ReadBlock(void* buffer, size_t size) override; - FX_BOOL WriteBlock(const void* buffer, - FX_FILESIZE offset, - size_t size) override; - FX_BOOL Flush() override; + bool WriteBlock(const void* buffer, FX_FILESIZE offset, size_t size) override; + bool Flush() override; protected: std::unique_ptr<IFXCRT_FileAccess> m_pFile; @@ -80,6 +78,7 @@ class CFX_CRTFileStream final : public IFX_SeekableStream { #define FX_MEMSTREAM_BlockSize (64 * 1024) #define FX_MEMSTREAM_Consecutive 0x01 #define FX_MEMSTREAM_TakeOver 0x02 + class CFX_MemoryStream final : public IFX_MemoryStream { public: explicit CFX_MemoryStream(FX_BOOL bConsecutive); @@ -90,20 +89,18 @@ class CFX_MemoryStream final : public IFX_MemoryStream { IFX_SeekableStream* Retain() override; void Release() override; FX_FILESIZE GetSize() override; - FX_BOOL IsEOF() override; + bool IsEOF() override; FX_FILESIZE GetPosition() override; - FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override; + bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override; size_t ReadBlock(void* buffer, size_t size) override; - FX_BOOL WriteBlock(const void* buffer, - FX_FILESIZE offset, - size_t size) override; - FX_BOOL Flush() override; - FX_BOOL IsConsecutive() const override; + bool WriteBlock(const void* buffer, FX_FILESIZE offset, size_t size) override; + bool Flush() override; + bool IsConsecutive() const override; void EstimateSize(size_t nInitSize, size_t nGrowSize) override; uint8_t* GetBuffer() const override; void AttachBuffer(uint8_t* pBuffer, size_t nSize, - FX_BOOL bTakeOver = FALSE) override; + bool bTakeOver = FALSE) override; void DetachBuffer() override; protected: diff --git a/core/fxcrt/fx_basic_buffer.cpp b/core/fxcrt/fx_basic_buffer.cpp index e954224d8a..8466e88c56 100644 --- a/core/fxcrt/fx_basic_buffer.cpp +++ b/core/fxcrt/fx_basic_buffer.cpp @@ -244,7 +244,7 @@ bool CFX_FileBufferArchive::Flush() { return false; if (!m_pBuffer || !nRemaining) return true; - return m_pFile->WriteBlock(m_pBuffer.get(), nRemaining) > 0; + return m_pFile->WriteBlock(m_pBuffer.get(), nRemaining); } int32_t CFX_FileBufferArchive::AppendBlock(const void* pBuf, size_t size) { diff --git a/core/fxcrt/fx_extension.cpp b/core/fxcrt/fx_extension.cpp index 5ac22bd44e..186d98b858 100644 --- a/core/fxcrt/fx_extension.cpp +++ b/core/fxcrt/fx_extension.cpp @@ -4,9 +4,10 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com +#include "core/fxcrt/extension.h" + #include <utility> -#include "core/fxcrt/extension.h" #include "core/fxcrt/fx_basic.h" #include "core/fxcrt/fx_ext.h" @@ -102,7 +103,7 @@ FX_FILESIZE CFX_MemoryStream::GetSize() { return (FX_FILESIZE)m_nCurSize; } -FX_BOOL CFX_MemoryStream::IsEOF() { +bool CFX_MemoryStream::IsEOF() { return m_nCurPos >= (size_t)GetSize(); } @@ -110,24 +111,23 @@ FX_FILESIZE CFX_MemoryStream::GetPosition() { return (FX_FILESIZE)m_nCurPos; } -FX_BOOL CFX_MemoryStream::ReadBlock(void* buffer, - FX_FILESIZE offset, - size_t size) { - if (!buffer || !size) { - return FALSE; - } +bool CFX_MemoryStream::ReadBlock(void* buffer, + FX_FILESIZE offset, + size_t size) { + if (!buffer || !size) + return false; FX_SAFE_SIZE_T newPos = size; newPos += offset; if (!newPos.IsValid() || newPos.ValueOrDefault(0) == 0 || newPos.ValueOrDie() > m_nCurSize) { - return FALSE; + return false; } m_nCurPos = newPos.ValueOrDie(); if (m_dwFlags & FX_MEMSTREAM_Consecutive) { FXSYS_memcpy(buffer, m_Blocks[0] + (size_t)offset, size); - return TRUE; + return true; } size_t nStartBlock = (size_t)offset / m_nGrowSize; offset -= (FX_FILESIZE)(nStartBlock * m_nGrowSize); @@ -142,7 +142,7 @@ FX_BOOL CFX_MemoryStream::ReadBlock(void* buffer, nStartBlock++; offset = 0; } - return TRUE; + return true; } size_t CFX_MemoryStream::ReadBlock(void* buffer, size_t size) { @@ -156,17 +156,17 @@ size_t CFX_MemoryStream::ReadBlock(void* buffer, size_t size) { return nRead; } -FX_BOOL CFX_MemoryStream::WriteBlock(const void* buffer, - FX_FILESIZE offset, - size_t size) { - if (!buffer || !size) { - return FALSE; - } +bool CFX_MemoryStream::WriteBlock(const void* buffer, + FX_FILESIZE offset, + size_t size) { + if (!buffer || !size) + return false; + if (m_dwFlags & FX_MEMSTREAM_Consecutive) { FX_SAFE_SIZE_T newPos = size; newPos += offset; if (!newPos.IsValid()) - return FALSE; + return false; m_nCurPos = newPos.ValueOrDie(); if (m_nCurPos > m_nTotalSize) { @@ -179,14 +179,14 @@ FX_BOOL CFX_MemoryStream::WriteBlock(const void* buffer, } if (!m_Blocks[0]) { m_Blocks.RemoveAll(); - return FALSE; + return false; } } FXSYS_memcpy(m_Blocks[0] + (size_t)offset, buffer, size); if (m_nCurSize < m_nCurPos) { m_nCurSize = m_nCurPos; } - return TRUE; + return true; } FX_SAFE_SIZE_T newPos = size; @@ -215,11 +215,11 @@ FX_BOOL CFX_MemoryStream::WriteBlock(const void* buffer, return TRUE; } -FX_BOOL CFX_MemoryStream::Flush() { - return TRUE; +bool CFX_MemoryStream::Flush() { + return true; } -FX_BOOL CFX_MemoryStream::IsConsecutive() const { +bool CFX_MemoryStream::IsConsecutive() const { return !!(m_dwFlags & FX_MEMSTREAM_Consecutive); } @@ -242,10 +242,10 @@ uint8_t* CFX_MemoryStream::GetBuffer() const { void CFX_MemoryStream::AttachBuffer(uint8_t* pBuffer, size_t nSize, - FX_BOOL bTakeOver) { - if (!(m_dwFlags & FX_MEMSTREAM_Consecutive)) { + bool bTakeOver) { + if (!(m_dwFlags & FX_MEMSTREAM_Consecutive)) return; - } + m_Blocks.RemoveAll(); m_Blocks.Add(pBuffer); m_nTotalSize = m_nCurSize = nSize; @@ -297,7 +297,7 @@ FX_FILESIZE CFX_CRTFileStream::GetSize() { return m_pFile->GetSize(); } -FX_BOOL CFX_CRTFileStream::IsEOF() { +bool CFX_CRTFileStream::IsEOF() { return GetPosition() >= GetSize(); } @@ -305,23 +305,23 @@ FX_FILESIZE CFX_CRTFileStream::GetPosition() { return m_pFile->GetPosition(); } -FX_BOOL CFX_CRTFileStream::ReadBlock(void* buffer, - FX_FILESIZE offset, - size_t size) { - return (FX_BOOL)m_pFile->ReadPos(buffer, size, offset); +bool CFX_CRTFileStream::ReadBlock(void* buffer, + FX_FILESIZE offset, + size_t size) { + return m_pFile->ReadPos(buffer, size, offset) > 0; } size_t CFX_CRTFileStream::ReadBlock(void* buffer, size_t size) { return m_pFile->Read(buffer, size); } -FX_BOOL CFX_CRTFileStream::WriteBlock(const void* buffer, - FX_FILESIZE offset, - size_t size) { - return (FX_BOOL)m_pFile->WritePos(buffer, size, offset); +bool CFX_CRTFileStream::WriteBlock(const void* buffer, + FX_FILESIZE offset, + size_t size) { + return !!m_pFile->WritePos(buffer, size, offset); } -FX_BOOL CFX_CRTFileStream::Flush() { +bool CFX_CRTFileStream::Flush() { return m_pFile->Flush(); } @@ -359,10 +359,10 @@ IFX_SeekableReadStream* FX_CreateFileRead(const FX_WCHAR* filename) { } IFX_MemoryStream* FX_CreateMemoryStream(uint8_t* pBuffer, size_t dwSize, - FX_BOOL bTakeOver) { + bool bTakeOver) { return new CFX_MemoryStream(pBuffer, dwSize, bTakeOver); } -IFX_MemoryStream* FX_CreateMemoryStream(FX_BOOL bConsecutive) { +IFX_MemoryStream* FX_CreateMemoryStream(bool bConsecutive) { return new CFX_MemoryStream(bConsecutive); } diff --git a/core/fxcrt/fx_stream.h b/core/fxcrt/fx_stream.h index 2509ec2cd7..8b1d91f4bc 100644 --- a/core/fxcrt/fx_stream.h +++ b/core/fxcrt/fx_stream.h @@ -59,7 +59,7 @@ class IFX_WriteStream { public: virtual ~IFX_WriteStream() {} virtual void Release() = 0; - virtual FX_BOOL WriteBlock(const void* pData, size_t size) = 0; + virtual bool WriteBlock(const void* pData, size_t size) = 0; }; class IFX_ReadStream { @@ -67,7 +67,7 @@ class IFX_ReadStream { virtual ~IFX_ReadStream() {} virtual void Release() = 0; - virtual FX_BOOL IsEOF() = 0; + virtual bool IsEOF() = 0; virtual FX_FILESIZE GetPosition() = 0; virtual size_t ReadBlock(void* buffer, size_t size) = 0; }; @@ -75,23 +75,23 @@ class IFX_ReadStream { class IFX_SeekableWriteStream : public IFX_WriteStream { public: // IFX_WriteStream: - FX_BOOL WriteBlock(const void* pData, size_t size) override; + bool WriteBlock(const void* pData, size_t size) override; virtual FX_FILESIZE GetSize() = 0; - virtual FX_BOOL Flush() = 0; - virtual FX_BOOL WriteBlock(const void* pData, - FX_FILESIZE offset, - size_t size) = 0; + virtual bool Flush() = 0; + virtual bool WriteBlock(const void* pData, + FX_FILESIZE offset, + size_t size) = 0; }; class IFX_SeekableReadStream : public IFX_ReadStream { public: // IFX_ReadStream: void Release() override = 0; - FX_BOOL IsEOF() override; + bool IsEOF() override; FX_FILESIZE GetPosition() override; size_t ReadBlock(void* buffer, size_t size) override; - virtual FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) = 0; + virtual bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) = 0; virtual FX_FILESIZE GetSize() = 0; }; @@ -105,18 +105,18 @@ class IFX_SeekableStream : public IFX_SeekableReadStream, // IFX_SeekableReadStream: void Release() override = 0; - FX_BOOL IsEOF() override = 0; + bool IsEOF() override = 0; FX_FILESIZE GetPosition() override = 0; size_t ReadBlock(void* buffer, size_t size) override = 0; - FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override = 0; + bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override = 0; FX_FILESIZE GetSize() override = 0; // IFX_SeekableWriteStream: - FX_BOOL WriteBlock(const void* buffer, - FX_FILESIZE offset, - size_t size) override = 0; - FX_BOOL WriteBlock(const void* buffer, size_t size) override; - FX_BOOL Flush() override = 0; + bool WriteBlock(const void* buffer, + FX_FILESIZE offset, + size_t size) override = 0; + bool WriteBlock(const void* buffer, size_t size) override; + bool Flush() override = 0; }; IFX_SeekableStream* FX_CreateFileStream(const FX_CHAR* filename, @@ -138,29 +138,29 @@ IFX_FileAccess* FX_CreateDefaultFileAccess(const CFX_WideStringC& wsPath); class IFX_MemoryStream : public IFX_SeekableStream { public: - virtual FX_BOOL IsConsecutive() const = 0; + virtual bool IsConsecutive() const = 0; virtual void EstimateSize(size_t nInitSize, size_t nGrowSize) = 0; virtual uint8_t* GetBuffer() const = 0; virtual void AttachBuffer(uint8_t* pBuffer, size_t nSize, - FX_BOOL bTakeOver = FALSE) = 0; + bool bTakeOver = FALSE) = 0; virtual void DetachBuffer() = 0; }; IFX_MemoryStream* FX_CreateMemoryStream(uint8_t* pBuffer, size_t nSize, - FX_BOOL bTakeOver = FALSE); -IFX_MemoryStream* FX_CreateMemoryStream(FX_BOOL bConsecutive = FALSE); + bool bTakeOver = FALSE); +IFX_MemoryStream* FX_CreateMemoryStream(bool bConsecutive = FALSE); class IFX_BufferRead : public IFX_ReadStream { public: // IFX_ReadStream: void Release() override = 0; - FX_BOOL IsEOF() override = 0; + bool IsEOF() override = 0; FX_FILESIZE GetPosition() override = 0; size_t ReadBlock(void* buffer, size_t size) override = 0; - virtual FX_BOOL ReadNextBlock(FX_BOOL bRestart = FALSE) = 0; + virtual bool ReadNextBlock(bool bRestart = FALSE) = 0; virtual const uint8_t* GetBlockBuffer() = 0; virtual size_t GetBlockSize() = 0; virtual FX_FILESIZE GetBlockOffset() = 0; diff --git a/core/fxcrt/fx_xml_parser.cpp b/core/fxcrt/fx_xml_parser.cpp index e6c3543378..f6b81dad93 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 +#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) {} @@ -22,7 +78,7 @@ void CXML_DataBufAcc::Release() { delete this; } -FX_BOOL CXML_DataBufAcc::IsEOF() { +bool CXML_DataBufAcc::IsEOF() { return m_dwCurPos >= m_dwSize; } @@ -34,15 +90,15 @@ size_t CXML_DataBufAcc::ReadBlock(void* buffer, size_t size) { return 0; } -FX_BOOL CXML_DataBufAcc::ReadNextBlock(FX_BOOL bRestart) { - if (bRestart) { +bool CXML_DataBufAcc::ReadNextBlock(bool bRestart) { + if (bRestart) m_dwCurPos = 0; - } + if (m_dwCurPos < m_dwSize) { m_dwCurPos = m_dwSize; - return TRUE; + return true; } - return FALSE; + return false; } const uint8_t* CXML_DataBufAcc::GetBlockBuffer() { @@ -70,7 +126,7 @@ void CXML_DataStmAcc::Release() { delete this; } -FX_BOOL CXML_DataStmAcc::IsEOF() { +bool CXML_DataStmAcc::IsEOF() { return m_nStart + (FX_FILESIZE)m_dwSize >= m_pFileRead->GetSize(); } @@ -82,21 +138,21 @@ size_t CXML_DataStmAcc::ReadBlock(void* buffer, size_t size) { return 0; } -FX_BOOL CXML_DataStmAcc::ReadNextBlock(FX_BOOL bRestart) { - if (bRestart) { +bool CXML_DataStmAcc::ReadNextBlock(bool bRestart) { + if (bRestart) m_nStart = 0; - } + FX_FILESIZE nLength = m_pFileRead->GetSize(); m_nStart += (FX_FILESIZE)m_dwSize; - if (m_nStart >= nLength) { - return FALSE; - } + 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) { + if (!m_pBuffer) m_pBuffer = FX_Alloc(uint8_t, m_dwSize); - } + return m_pFileRead->ReadBlock(m_pBuffer, m_nStart, m_dwSize); } @@ -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()) { diff --git a/core/fxcrt/fxcrt_posix.cpp b/core/fxcrt/fxcrt_posix.cpp index b5efdc28f4..a96f164c7f 100644 --- a/core/fxcrt/fxcrt_posix.cpp +++ b/core/fxcrt/fxcrt_posix.cpp @@ -36,20 +36,24 @@ CFXCRT_FileAccess_Posix::CFXCRT_FileAccess_Posix() : m_nFD(-1) {} CFXCRT_FileAccess_Posix::~CFXCRT_FileAccess_Posix() { Close(); } -FX_BOOL CFXCRT_FileAccess_Posix::Open(const CFX_ByteStringC& fileName, - uint32_t dwMode) { - if (m_nFD > -1) { - return FALSE; - } - int32_t nFlags, nMasks; + +bool CFXCRT_FileAccess_Posix::Open(const CFX_ByteStringC& fileName, + uint32_t dwMode) { + if (m_nFD > -1) + return false; + + int32_t nFlags; + int32_t nMasks; FXCRT_Posix_GetFileMode(dwMode, nFlags, nMasks); m_nFD = open(fileName.c_str(), nFlags, nMasks); return m_nFD > -1; } -FX_BOOL CFXCRT_FileAccess_Posix::Open(const CFX_WideStringC& fileName, - uint32_t dwMode) { + +bool CFXCRT_FileAccess_Posix::Open(const CFX_WideStringC& fileName, + uint32_t dwMode) { return Open(FX_UTF8Encode(fileName).AsStringC(), dwMode); } + void CFXCRT_FileAccess_Posix::Close() { if (m_nFD < 0) { return; @@ -115,16 +119,18 @@ size_t CFXCRT_FileAccess_Posix::WritePos(const void* pBuffer, } return Write(pBuffer, szBuffer); } -FX_BOOL CFXCRT_FileAccess_Posix::Flush() { - if (m_nFD < 0) { - return FALSE; - } + +bool CFXCRT_FileAccess_Posix::Flush() { + if (m_nFD < 0) + return false; + return fsync(m_nFD) > -1; } -FX_BOOL CFXCRT_FileAccess_Posix::Truncate(FX_FILESIZE szFile) { - if (m_nFD < 0) { - return FALSE; - } + +bool CFXCRT_FileAccess_Posix::Truncate(FX_FILESIZE szFile) { + if (m_nFD < 0) + return false; + return !ftruncate(m_nFD, szFile); } diff --git a/core/fxcrt/fxcrt_posix.h b/core/fxcrt/fxcrt_posix.h index 37f6548d40..20faa5c02f 100644 --- a/core/fxcrt/fxcrt_posix.h +++ b/core/fxcrt/fxcrt_posix.h @@ -17,9 +17,9 @@ class CFXCRT_FileAccess_Posix : public IFXCRT_FileAccess { CFXCRT_FileAccess_Posix(); ~CFXCRT_FileAccess_Posix() override; - // IFXCRT_FileAccess - FX_BOOL Open(const CFX_ByteStringC& fileName, uint32_t dwMode) override; - FX_BOOL Open(const CFX_WideStringC& fileName, uint32_t dwMode) override; + // IFXCRT_FileAccess: + bool Open(const CFX_ByteStringC& fileName, uint32_t dwMode) override; + bool Open(const CFX_WideStringC& fileName, uint32_t dwMode) override; void Close() override; FX_FILESIZE GetSize() const override; FX_FILESIZE GetPosition() const override; @@ -30,8 +30,8 @@ class CFXCRT_FileAccess_Posix : public IFXCRT_FileAccess { size_t WritePos(const void* pBuffer, size_t szBuffer, FX_FILESIZE pos) override; - FX_BOOL Flush() override; - FX_BOOL Truncate(FX_FILESIZE szFile) override; + bool Flush() override; + bool Truncate(FX_FILESIZE szFile) override; protected: int32_t m_nFD; diff --git a/core/fxcrt/fxcrt_stream.cpp b/core/fxcrt/fxcrt_stream.cpp index 638a183177..48b8a79379 100644 --- a/core/fxcrt/fxcrt_stream.cpp +++ b/core/fxcrt/fxcrt_stream.cpp @@ -6,11 +6,11 @@ #include "core/fxcrt/fx_stream.h" -FX_BOOL IFX_SeekableWriteStream::WriteBlock(const void* pData, size_t size) { +bool IFX_SeekableWriteStream::WriteBlock(const void* pData, size_t size) { return WriteBlock(pData, GetSize(), size); } -FX_BOOL IFX_SeekableReadStream::IsEOF() { +bool IFX_SeekableReadStream::IsEOF() { return FALSE; } @@ -22,6 +22,6 @@ size_t IFX_SeekableReadStream::ReadBlock(void* buffer, size_t size) { return 0; } -FX_BOOL IFX_SeekableStream::WriteBlock(const void* buffer, size_t size) { +bool IFX_SeekableStream::WriteBlock(const void* buffer, size_t size) { return WriteBlock(buffer, GetSize(), size); } diff --git a/core/fxcrt/fxcrt_windows.cpp b/core/fxcrt/fxcrt_windows.cpp index ec16373f02..87bbe96a5c 100644 --- a/core/fxcrt/fxcrt_windows.cpp +++ b/core/fxcrt/fxcrt_windows.cpp @@ -28,6 +28,7 @@ void FXCRT_Windows_GetFileMode(uint32_t dwMode, dwCreation = OPEN_EXISTING; } } + #ifdef __cplusplus extern "C" { #endif @@ -39,80 +40,91 @@ WINBASEAPI BOOL WINAPI SetFilePointerEx(HANDLE hFile, #ifdef __cplusplus } #endif + CFXCRT_FileAccess_Win64::CFXCRT_FileAccess_Win64() : m_hFile(nullptr) {} + CFXCRT_FileAccess_Win64::~CFXCRT_FileAccess_Win64() { Close(); } -FX_BOOL CFXCRT_FileAccess_Win64::Open(const CFX_ByteStringC& fileName, - uint32_t dwMode) { - if (m_hFile) { + +bool CFXCRT_FileAccess_Win64::Open(const CFX_ByteStringC& fileName, + uint32_t dwMode) { + if (m_hFile) return FALSE; - } + uint32_t dwAccess, dwShare, dwCreation; FXCRT_Windows_GetFileMode(dwMode, dwAccess, dwShare, dwCreation); m_hFile = ::CreateFileA(fileName.c_str(), dwAccess, dwShare, nullptr, dwCreation, FILE_ATTRIBUTE_NORMAL, nullptr); if (m_hFile == INVALID_HANDLE_VALUE) m_hFile = nullptr; + return !!m_hFile; } -FX_BOOL CFXCRT_FileAccess_Win64::Open(const CFX_WideStringC& fileName, - uint32_t dwMode) { - if (m_hFile) { + +bool CFXCRT_FileAccess_Win64::Open(const CFX_WideStringC& fileName, + uint32_t dwMode) { + if (m_hFile) return FALSE; - } + uint32_t dwAccess, dwShare, dwCreation; FXCRT_Windows_GetFileMode(dwMode, dwAccess, dwShare, dwCreation); m_hFile = ::CreateFileW((LPCWSTR)fileName.c_str(), dwAccess, dwShare, nullptr, dwCreation, FILE_ATTRIBUTE_NORMAL, nullptr); if (m_hFile == INVALID_HANDLE_VALUE) m_hFile = nullptr; + return !!m_hFile; } + void CFXCRT_FileAccess_Win64::Close() { - if (!m_hFile) { + if (!m_hFile) return; - } + ::CloseHandle(m_hFile); m_hFile = nullptr; } + FX_FILESIZE CFXCRT_FileAccess_Win64::GetSize() const { - if (!m_hFile) { + if (!m_hFile) return 0; - } + LARGE_INTEGER size = {}; - if (!::GetFileSizeEx(m_hFile, &size)) { + if (!::GetFileSizeEx(m_hFile, &size)) return 0; - } + return (FX_FILESIZE)size.QuadPart; } + FX_FILESIZE CFXCRT_FileAccess_Win64::GetPosition() const { - if (!m_hFile) { + if (!m_hFile) return (FX_FILESIZE)-1; - } + LARGE_INTEGER dist = {}; LARGE_INTEGER newPos = {}; - if (!::SetFilePointerEx(m_hFile, dist, &newPos, FILE_CURRENT)) { + if (!::SetFilePointerEx(m_hFile, dist, &newPos, FILE_CURRENT)) return (FX_FILESIZE)-1; - } + return (FX_FILESIZE)newPos.QuadPart; } + FX_FILESIZE CFXCRT_FileAccess_Win64::SetPosition(FX_FILESIZE pos) { - if (!m_hFile) { + if (!m_hFile) return (FX_FILESIZE)-1; - } + LARGE_INTEGER dist; dist.QuadPart = pos; LARGE_INTEGER newPos = {}; - if (!::SetFilePointerEx(m_hFile, dist, &newPos, FILE_BEGIN)) { + if (!::SetFilePointerEx(m_hFile, dist, &newPos, FILE_BEGIN)) return (FX_FILESIZE)-1; - } + return (FX_FILESIZE)newPos.QuadPart; } + size_t CFXCRT_FileAccess_Win64::Read(void* pBuffer, size_t szBuffer) { - if (!m_hFile) { + if (!m_hFile) return 0; - } + size_t szRead = 0; if (!::ReadFile(m_hFile, pBuffer, (DWORD)szBuffer, (LPDWORD)&szRead, nullptr)) { @@ -120,10 +132,11 @@ size_t CFXCRT_FileAccess_Win64::Read(void* pBuffer, size_t szBuffer) { } return szRead; } + size_t CFXCRT_FileAccess_Win64::Write(const void* pBuffer, size_t szBuffer) { - if (!m_hFile) { + if (!m_hFile) return 0; - } + size_t szWrite = 0; if (!::WriteFile(m_hFile, pBuffer, (DWORD)szBuffer, (LPDWORD)&szWrite, nullptr)) { @@ -131,20 +144,22 @@ size_t CFXCRT_FileAccess_Win64::Write(const void* pBuffer, size_t szBuffer) { } return szWrite; } + size_t CFXCRT_FileAccess_Win64::ReadPos(void* pBuffer, size_t szBuffer, FX_FILESIZE pos) { - if (!m_hFile) { + if (!m_hFile) return 0; - } - if (pos >= GetSize()) { + + if (pos >= GetSize()) return 0; - } - if (SetPosition(pos) == (FX_FILESIZE)-1) { + + if (SetPosition(pos) == (FX_FILESIZE)-1) return 0; - } + return Read(pBuffer, szBuffer); } + size_t CFXCRT_FileAccess_Win64::WritePos(const void* pBuffer, size_t szBuffer, FX_FILESIZE pos) { @@ -156,16 +171,18 @@ size_t CFXCRT_FileAccess_Win64::WritePos(const void* pBuffer, } return Write(pBuffer, szBuffer); } -FX_BOOL CFXCRT_FileAccess_Win64::Flush() { - if (!m_hFile) { - return FALSE; - } - return ::FlushFileBuffers(m_hFile); + +bool CFXCRT_FileAccess_Win64::Flush() { + if (!m_hFile) + return false; + + return !!::FlushFileBuffers(m_hFile); } -FX_BOOL CFXCRT_FileAccess_Win64::Truncate(FX_FILESIZE szFile) { - if (SetPosition(szFile) == (FX_FILESIZE)-1) { - return FALSE; - } - return ::SetEndOfFile(m_hFile); + +bool CFXCRT_FileAccess_Win64::Truncate(FX_FILESIZE szFile) { + if (SetPosition(szFile) == (FX_FILESIZE)-1) + return false; + + return !!::SetEndOfFile(m_hFile); } #endif diff --git a/core/fxcrt/fxcrt_windows.h b/core/fxcrt/fxcrt_windows.h index 19cef0adc2..f8f948360d 100644 --- a/core/fxcrt/fxcrt_windows.h +++ b/core/fxcrt/fxcrt_windows.h @@ -16,8 +16,8 @@ class CFXCRT_FileAccess_Win64 : public IFXCRT_FileAccess { ~CFXCRT_FileAccess_Win64() override; // IFXCRT_FileAccess - FX_BOOL Open(const CFX_ByteStringC& fileName, uint32_t dwMode) override; - FX_BOOL Open(const CFX_WideStringC& fileName, uint32_t dwMode) override; + bool Open(const CFX_ByteStringC& fileName, uint32_t dwMode) override; + bool Open(const CFX_WideStringC& fileName, uint32_t dwMode) override; void Close() override; FX_FILESIZE GetSize() const override; FX_FILESIZE GetPosition() const override; @@ -28,8 +28,8 @@ class CFXCRT_FileAccess_Win64 : public IFXCRT_FileAccess { size_t WritePos(const void* pBuffer, size_t szBuffer, FX_FILESIZE pos) override; - FX_BOOL Flush() override; - FX_BOOL Truncate(FX_FILESIZE szFile) override; + bool Flush() override; + bool Truncate(FX_FILESIZE szFile) override; protected: void* m_hFile; diff --git a/core/fxcrt/xml_int.h b/core/fxcrt/xml_int.h index aa157c2333..bc9ea3dd48 100644 --- a/core/fxcrt/xml_int.h +++ b/core/fxcrt/xml_int.h @@ -21,10 +21,10 @@ class CXML_DataBufAcc : public IFX_BufferRead { // IFX_BufferRead void Release() override; - FX_BOOL IsEOF() override; + bool IsEOF() override; FX_FILESIZE GetPosition() override; size_t ReadBlock(void* buffer, size_t size) override; - FX_BOOL ReadNextBlock(FX_BOOL bRestart = FALSE) override; + bool ReadNextBlock(bool bRestart = FALSE) override; const uint8_t* GetBlockBuffer() override; size_t GetBlockSize() override; FX_FILESIZE GetBlockOffset() override; @@ -42,10 +42,10 @@ class CXML_DataStmAcc : public IFX_BufferRead { // IFX_BufferRead void Release() override; - FX_BOOL IsEOF() override; + bool IsEOF() override; FX_FILESIZE GetPosition() override; size_t ReadBlock(void* buffer, size_t size) override; - FX_BOOL ReadNextBlock(FX_BOOL bRestart = FALSE) override; + bool ReadNextBlock(bool bRestart = FALSE) override; const uint8_t* GetBlockBuffer() override; size_t GetBlockSize() override; FX_FILESIZE GetBlockOffset() override; @@ -62,13 +62,13 @@ class CXML_Parser { CXML_Parser(); ~CXML_Parser(); - FX_BOOL Init(uint8_t* pBuffer, size_t size); - FX_BOOL Init(IFX_SeekableReadStream* pFileRead); - FX_BOOL Init(IFX_BufferRead* pBuffer); - FX_BOOL Init(FX_BOOL bOwndedStream); - FX_BOOL ReadNextBlock(); - FX_BOOL IsEOF(); - FX_BOOL HaveAvailData(); + bool Init(uint8_t* pBuffer, size_t size); + bool Init(IFX_SeekableReadStream* pFileRead); + bool Init(IFX_BufferRead* pBuffer); + bool Init(bool bOwndedStream); + bool ReadNextBlock(); + bool IsEOF(); + bool HaveAvailData(); void SkipWhiteSpaces(); void GetName(CFX_ByteString& space, CFX_ByteString& name); void GetAttrValue(CFX_WideString& value); @@ -85,7 +85,7 @@ class CXML_Parser { void InsertCDATASegment(CFX_UTF8Decoder& decoder, CXML_Element* pElement); IFX_BufferRead* m_pDataAcc; - FX_BOOL m_bOwnedStream; + bool m_bOwnedStream; FX_FILESIZE m_nOffset; FX_BOOL m_bSaveSpaceChars; const uint8_t* m_pBuffer; diff --git a/fpdfsdk/fpdf_dataavail.cpp b/fpdfsdk/fpdf_dataavail.cpp index 0bf67e9826..45d3b2aa5d 100644 --- a/fpdfsdk/fpdf_dataavail.cpp +++ b/fpdfsdk/fpdf_dataavail.cpp @@ -67,9 +67,9 @@ class CFPDF_FileAccessWrap : public IFX_SeekableReadStream { // IFX_SeekableReadStream FX_FILESIZE GetSize() override { return m_pFileAccess->m_FileLen; } - FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override { - return m_pFileAccess->m_GetBlock(m_pFileAccess->m_Param, offset, - (uint8_t*)buffer, size); + bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override { + return !!m_pFileAccess->m_GetBlock(m_pFileAccess->m_Param, offset, + (uint8_t*)buffer, size); } void Release() override {} diff --git a/fpdfsdk/fpdfsave.cpp b/fpdfsdk/fpdfsave.cpp index 9cdc714f3f..03a9db1168 100644 --- a/fpdfsdk/fpdfsave.cpp +++ b/fpdfsdk/fpdfsave.cpp @@ -39,8 +39,8 @@ class CFX_IFileWrite final : public IFX_WriteStream { public: CFX_IFileWrite(); - FX_BOOL Init(FPDF_FILEWRITE* pFileWriteStruct); - FX_BOOL WriteBlock(const void* pData, size_t size) override; + bool Init(FPDF_FILEWRITE* pFileWriteStruct); + bool WriteBlock(const void* pData, size_t size) override; void Release() override; protected: @@ -53,20 +53,20 @@ CFX_IFileWrite::CFX_IFileWrite() { m_pFileWriteStruct = nullptr; } -FX_BOOL CFX_IFileWrite::Init(FPDF_FILEWRITE* pFileWriteStruct) { +bool CFX_IFileWrite::Init(FPDF_FILEWRITE* pFileWriteStruct) { if (!pFileWriteStruct) - return FALSE; + return false; m_pFileWriteStruct = pFileWriteStruct; - return TRUE; + return true; } -FX_BOOL CFX_IFileWrite::WriteBlock(const void* pData, size_t size) { +bool CFX_IFileWrite::WriteBlock(const void* pData, size_t size) { if (!m_pFileWriteStruct) - return FALSE; + return false; m_pFileWriteStruct->WriteBlock(m_pFileWriteStruct, pData, size); - return TRUE; + return true; } void CFX_IFileWrite::Release() { diff --git a/fpdfsdk/fpdfview.cpp b/fpdfsdk/fpdfview.cpp index be56c531d2..03aedf6874 100644 --- a/fpdfsdk/fpdfview.cpp +++ b/fpdfsdk/fpdfview.cpp @@ -112,7 +112,7 @@ FX_FILESIZE CFPDF_FileStream::GetSize() { return 0; } -FX_BOOL CFPDF_FileStream::IsEOF() { +bool CFPDF_FileStream::IsEOF() { return m_nCurPos >= GetSize(); } @@ -120,18 +120,18 @@ FX_FILESIZE CFPDF_FileStream::GetPosition() { return m_nCurPos; } -FX_BOOL CFPDF_FileStream::ReadBlock(void* buffer, - FX_FILESIZE offset, - size_t size) { +bool CFPDF_FileStream::ReadBlock(void* buffer, + FX_FILESIZE offset, + size_t size) { if (!buffer || !size || !m_pFS->ReadBlock) - return FALSE; + return false; if (m_pFS->ReadBlock(m_pFS->clientData, (FPDF_DWORD)offset, buffer, (FPDF_DWORD)size) == 0) { m_nCurPos = offset + size; - return TRUE; + return true; } - return FALSE; + return false; } size_t CFPDF_FileStream::ReadBlock(void* buffer, size_t size) { @@ -153,23 +153,23 @@ size_t CFPDF_FileStream::ReadBlock(void* buffer, size_t size) { return 0; } -FX_BOOL CFPDF_FileStream::WriteBlock(const void* buffer, - FX_FILESIZE offset, - size_t size) { +bool CFPDF_FileStream::WriteBlock(const void* buffer, + FX_FILESIZE offset, + size_t size) { if (!m_pFS || !m_pFS->WriteBlock) - return FALSE; + return false; if (m_pFS->WriteBlock(m_pFS->clientData, (FPDF_DWORD)offset, buffer, (FPDF_DWORD)size) == 0) { m_nCurPos = offset + size; - return TRUE; + return true; } - return FALSE; + return false; } -FX_BOOL CFPDF_FileStream::Flush() { +bool CFPDF_FileStream::Flush() { if (!m_pFS || !m_pFS->Flush) - return TRUE; + return true; return m_pFS->Flush(m_pFS->clientData) == 0; } @@ -186,21 +186,21 @@ void CPDF_CustomAccess::Release() { delete this; } -FX_BOOL CPDF_CustomAccess::ReadBlock(void* buffer, - FX_FILESIZE offset, - size_t size) { - if (offset < 0) { - return FALSE; - } +bool CPDF_CustomAccess::ReadBlock(void* buffer, + FX_FILESIZE offset, + size_t size) { + if (offset < 0) + return false; + FX_SAFE_FILESIZE newPos = pdfium::base::checked_cast<FX_FILESIZE, size_t>(size); newPos += offset; if (!newPos.IsValid() || newPos.ValueOrDie() > static_cast<FX_FILESIZE>(m_FileAccess.m_FileLen)) { - return FALSE; + return false; } - return m_FileAccess.m_GetBlock(m_FileAccess.m_Param, offset, (uint8_t*)buffer, - size); + return !!m_FileAccess.m_GetBlock(m_FileAccess.m_Param, offset, + reinterpret_cast<uint8_t*>(buffer), size); } // 0 bit: FPDF_POLICY_MACHINETIME_ACCESS @@ -388,18 +388,18 @@ class CMemFile final : public IFX_SeekableReadStream { void Release() override { delete this; } FX_FILESIZE GetSize() override { return m_size; } - FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override { + bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override { if (offset < 0) { - return FALSE; + return false; } FX_SAFE_FILESIZE newPos = pdfium::base::checked_cast<FX_FILESIZE, size_t>(size); newPos += offset; if (!newPos.IsValid() || newPos.ValueOrDie() > m_size) { - return FALSE; + return false; } FXSYS_memcpy(buffer, m_pBuf + offset, size); - return TRUE; + return true; } private: diff --git a/fpdfsdk/fsdk_define.h b/fpdfsdk/fsdk_define.h index 4fea138779..aeb42d2d11 100644 --- a/fpdfsdk/fsdk_define.h +++ b/fpdfsdk/fsdk_define.h @@ -33,7 +33,7 @@ class CPDF_CustomAccess final : public IFX_SeekableReadStream { // IFX_SeekableReadStream FX_FILESIZE GetSize() override; void Release() override; - FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override; + bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override; private: FPDF_FILEACCESS m_FileAccess; @@ -49,14 +49,12 @@ class CFPDF_FileStream : public IFX_SeekableStream { IFX_SeekableStream* Retain() override; void Release() override; FX_FILESIZE GetSize() override; - FX_BOOL IsEOF() override; + bool IsEOF() override; FX_FILESIZE GetPosition() override; - FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override; + bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override; size_t ReadBlock(void* buffer, size_t size) override; - FX_BOOL WriteBlock(const void* buffer, - FX_FILESIZE offset, - size_t size) override; - FX_BOOL Flush() override; + bool WriteBlock(const void* buffer, FX_FILESIZE offset, size_t size) override; + bool Flush() override; void SetPosition(FX_FILESIZE pos) { m_nCurPos = pos; } diff --git a/xfa/fgas/crt/fgas_stream.cpp b/xfa/fgas/crt/fgas_stream.cpp index f0a2a88100..6da4e9ed8c 100644 --- a/xfa/fgas/crt/fgas_stream.cpp +++ b/xfa/fgas/crt/fgas_stream.cpp @@ -291,16 +291,16 @@ class CFX_TextStream : public IFX_Stream { class CFGAS_FileRead : public IFX_SeekableReadStream { public: - CFGAS_FileRead(IFX_Stream* pStream, FX_BOOL bReleaseStream); + CFGAS_FileRead(IFX_Stream* pStream, bool bReleaseStream); ~CFGAS_FileRead() override; // IFX_SeekableReadStream void Release() override; FX_FILESIZE GetSize() override; - FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override; + bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override; protected: - FX_BOOL m_bReleaseStream; + bool m_bReleaseStream; IFX_Stream* m_pStream; }; @@ -1469,12 +1469,14 @@ IFX_Stream* CFX_Stream::CreateSharedStream(uint32_t dwAccess, } return pShared; } + IFX_SeekableReadStream* FX_CreateFileRead(IFX_Stream* pBaseStream, - FX_BOOL bReleaseStream) { + bool bReleaseStream) { ASSERT(pBaseStream); return new CFGAS_FileRead(pBaseStream, bReleaseStream); } -CFGAS_FileRead::CFGAS_FileRead(IFX_Stream* pStream, FX_BOOL bReleaseStream) + +CFGAS_FileRead::CFGAS_FileRead(IFX_Stream* pStream, bool bReleaseStream) : m_bReleaseStream(bReleaseStream), m_pStream(pStream) { ASSERT(m_pStream); } @@ -1486,9 +1488,8 @@ CFGAS_FileRead::~CFGAS_FileRead() { FX_FILESIZE CFGAS_FileRead::GetSize() { return (FX_FILESIZE)m_pStream->GetLength(); } -FX_BOOL CFGAS_FileRead::ReadBlock(void* buffer, - FX_FILESIZE offset, - size_t size) { + +bool CFGAS_FileRead::ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) { m_pStream->Seek(FX_STREAMSEEK_Begin, (int32_t)offset); int32_t iLen = m_pStream->ReadData((uint8_t*)buffer, (int32_t)size); return iLen == (int32_t)size; diff --git a/xfa/fgas/crt/fgas_stream.h b/xfa/fgas/crt/fgas_stream.h index c61688d7a7..34d684f9ca 100644 --- a/xfa/fgas/crt/fgas_stream.h +++ b/xfa/fgas/crt/fgas_stream.h @@ -10,11 +10,6 @@ #include "core/fxcrt/fx_stream.h" #include "core/fxcrt/fx_system.h" -class IFX_Stream; - -IFX_SeekableReadStream* FX_CreateFileRead(IFX_Stream* pBaseStream, - FX_BOOL bReleaseStream); - enum FX_STREAMACCESS { FX_STREAMACCESS_Binary = 0x00, FX_STREAMACCESS_Text = 0x01, @@ -68,4 +63,7 @@ class IFX_Stream { virtual uint16_t SetCodePage(uint16_t wCodePage) = 0; }; +IFX_SeekableReadStream* FX_CreateFileRead(IFX_Stream* pBaseStream, + bool bReleaseStream); + #endif // XFA_FGAS_CRT_FGAS_STREAM_H_ diff --git a/xfa/fxfa/app/xfa_ffapp.cpp b/xfa/fxfa/app/xfa_ffapp.cpp index d60d48fa75..06cad02253 100644 --- a/xfa/fxfa/app/xfa_ffapp.cpp +++ b/xfa/fxfa/app/xfa_ffapp.cpp @@ -37,9 +37,7 @@ FX_FILESIZE CXFA_FileRead::GetSize() { return dwSize; } -FX_BOOL CXFA_FileRead::ReadBlock(void* buffer, - FX_FILESIZE offset, - size_t size) { +bool CXFA_FileRead::ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) { int32_t iCount = m_Data.GetSize(); int32_t index = 0; while (index < iCount) { @@ -58,13 +56,13 @@ FX_BOOL CXFA_FileRead::ReadBlock(void* buffer, FXSYS_memcpy(buffer, acc.GetData() + offset, dwRead); size -= dwRead; if (size == 0) { - return TRUE; + return true; } buffer = (uint8_t*)buffer + dwRead; offset = 0; index++; } - return FALSE; + return false; } void CXFA_FileRead::Release() { diff --git a/xfa/fxfa/xfa_ffapp.h b/xfa/fxfa/xfa_ffapp.h index 5e8289538b..543d78c2ee 100644 --- a/xfa/fxfa/xfa_ffapp.h +++ b/xfa/fxfa/xfa_ffapp.h @@ -31,7 +31,7 @@ class CXFA_FileRead : public IFX_SeekableReadStream { // IFX_SeekableReadStream FX_FILESIZE GetSize() override; - FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override; + bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override; void Release() override; protected: |