Index: xfa/fde/xml/cfx_saxreader.cpp |
diff --git a/xfa/fde/xml/cfx_saxreader.cpp b/xfa/fde/xml/cfx_saxreader.cpp |
index b4d48d29379436c2db2e95a514cb7836fa4e8638..458bed52d6caf598bb6534d2631a7f0f6a084a2a 100644 |
--- a/xfa/fde/xml/cfx_saxreader.cpp |
+++ b/xfa/fde/xml/cfx_saxreader.cpp |
@@ -63,32 +63,34 @@ static const FX_SAXReader_LPFParse |
} // namespace |
CFX_SAXFile::CFX_SAXFile() |
- : m_pFile(nullptr), |
- m_dwStart(0), |
+ : m_dwStart(0), |
m_dwEnd(0), |
m_dwCur(0), |
m_pBuf(nullptr), |
m_dwBufSize(0), |
m_dwBufIndex(0) {} |
-bool CFX_SAXFile::StartFile(IFX_SeekableReadStream* pFile, |
+ |
+CFX_SAXFile::~CFX_SAXFile() {} |
+ |
+bool CFX_SAXFile::StartFile(const CFX_RetainPtr<IFX_SeekableReadStream>& pFile, |
uint32_t dwStart, |
uint32_t dwLen) { |
ASSERT(!m_pFile && pFile); |
uint32_t dwSize = pFile->GetSize(); |
- if (dwStart >= dwSize) { |
+ if (dwStart >= dwSize) |
return false; |
- } |
- if (dwLen == static_cast<uint32_t>(-1) || dwStart + dwLen > dwSize) { |
+ |
+ if (dwLen == static_cast<uint32_t>(-1) || dwStart + dwLen > dwSize) |
dwLen = dwSize - dwStart; |
- } |
- if (dwLen == 0) { |
+ |
+ if (dwLen == 0) |
return false; |
- } |
+ |
m_dwBufSize = std::min(dwLen, kSaxFileBufSize); |
m_pBuf = FX_Alloc(uint8_t, m_dwBufSize); |
- if (!pFile->ReadBlock(m_pBuf, dwStart, m_dwBufSize)) { |
+ if (!pFile->ReadBlock(m_pBuf, dwStart, m_dwBufSize)) |
return false; |
- } |
+ |
m_dwStart = dwStart; |
m_dwEnd = dwStart + dwLen; |
m_dwCur = dwStart; |
@@ -214,15 +216,16 @@ bool CFX_SAXReader::SkipSpace(uint8_t ch) { |
return (m_dwParseMode & CFX_SaxParseMode_NotSkipSpace) == 0 && ch < 0x21; |
} |
-int32_t CFX_SAXReader::StartParse(IFX_SeekableReadStream* pFile, |
- uint32_t dwStart, |
- uint32_t dwLen, |
- uint32_t dwParseMode) { |
+int32_t CFX_SAXReader::StartParse( |
+ const CFX_RetainPtr<IFX_SeekableReadStream>& pFile, |
+ uint32_t dwStart, |
+ uint32_t dwLen, |
+ uint32_t dwParseMode) { |
m_iState = -1; |
Reset(); |
- if (!m_File.StartFile(pFile, dwStart, dwLen)) { |
+ if (!m_File.StartFile(pFile, dwStart, dwLen)) |
return -1; |
- } |
+ |
m_iState = 0; |
m_eMode = CFX_SaxMode::Text; |
m_ePrevMode = CFX_SaxMode::Text; |