diff options
Diffstat (limited to 'xfa/fgas/crt/ifgas_stream.cpp')
-rw-r--r-- | xfa/fgas/crt/ifgas_stream.cpp | 57 |
1 files changed, 12 insertions, 45 deletions
diff --git a/xfa/fgas/crt/ifgas_stream.cpp b/xfa/fgas/crt/ifgas_stream.cpp index 38c94973d7..fa9b8db02d 100644 --- a/xfa/fgas/crt/ifgas_stream.cpp +++ b/xfa/fgas/crt/ifgas_stream.cpp @@ -130,10 +130,6 @@ class CFGAS_Stream : public IFGAS_Stream { std::unique_ptr<IFGAS_StreamImp> m_pStreamImp; uint32_t m_dwAccess; - int32_t m_iTotalSize; - int32_t m_iPosition; - int32_t m_iLength; - int32_t m_iRefCount; }; class CFGAS_TextStream : public IFGAS_Stream { @@ -511,12 +507,7 @@ int32_t CFGAS_TextStream::WriteString(const wchar_t* pStr, int32_t iLength) { CFGAS_Stream::CFGAS_Stream(std::unique_ptr<IFGAS_StreamImp> imp, uint32_t dwAccess) - : m_pStreamImp(std::move(imp)), - m_dwAccess(dwAccess), - m_iTotalSize(0), - m_iPosition(0), - m_iLength(m_pStreamImp->GetLength()), - m_iRefCount(1) {} + : m_pStreamImp(std::move(imp)), m_dwAccess(dwAccess) {} CFGAS_Stream::~CFGAS_Stream() {} @@ -531,15 +522,13 @@ int32_t CFGAS_Stream::GetLength() const { int32_t CFGAS_Stream::Seek(FX_STREAMSEEK eSeek, int32_t iOffset) { if (!m_pStreamImp) return -1; - m_iPosition = m_pStreamImp->Seek(eSeek, iOffset); - return m_iPosition; + return m_pStreamImp->Seek(eSeek, iOffset); } int32_t CFGAS_Stream::GetPosition() { if (!m_pStreamImp) return -1; - m_iPosition = m_pStreamImp->GetPosition(); - return m_iPosition; + return m_pStreamImp->GetPosition(); } bool CFGAS_Stream::IsEOF() const { @@ -551,15 +540,12 @@ int32_t CFGAS_Stream::ReadData(uint8_t* pBuffer, int32_t iBufferSize) { if (!m_pStreamImp) return -1; - int32_t iLen = std::min(m_iLength - m_iPosition, iBufferSize); + int32_t iLen = std::min( + m_pStreamImp->GetLength() - m_pStreamImp->GetPosition(), iBufferSize); if (iLen <= 0) return 0; - if (m_pStreamImp->GetPosition() != m_iPosition) - m_pStreamImp->Seek(FX_STREAMSEEK_Begin, m_iPosition); - iLen = m_pStreamImp->ReadData(pBuffer, iLen); - m_iPosition = m_pStreamImp->GetPosition(); - return iLen; + return m_pStreamImp->ReadData(pBuffer, iLen); } int32_t CFGAS_Stream::ReadString(wchar_t* pStr, @@ -569,18 +555,12 @@ int32_t CFGAS_Stream::ReadString(wchar_t* pStr, if (!m_pStreamImp) return -1; - int32_t iLen = std::min((m_iLength - m_iPosition) / 2, iMaxLength); + int32_t iLen = + std::min((m_pStreamImp->GetLength() - m_pStreamImp->GetPosition()) / 2, + iMaxLength); if (iLen <= 0) return 0; - if (m_pStreamImp->GetPosition() != m_iPosition) - m_pStreamImp->Seek(FX_STREAMSEEK_Begin, m_iPosition); - - iLen = m_pStreamImp->ReadString(pStr, iLen, bEOS); - m_iPosition = m_pStreamImp->GetPosition(); - if (iLen > 0 && m_iPosition >= m_iLength) - bEOS = true; - - return iLen; + return m_pStreamImp->ReadString(pStr, iLen, bEOS); } int32_t CFGAS_Stream::WriteData(const uint8_t* pBuffer, int32_t iBufferSize) { @@ -589,14 +569,7 @@ int32_t CFGAS_Stream::WriteData(const uint8_t* pBuffer, int32_t iBufferSize) { return -1; if ((m_dwAccess & FX_STREAMACCESS_Write) == 0) return -1; - if (m_pStreamImp->GetPosition() != m_iPosition) - m_pStreamImp->Seek(FX_STREAMSEEK_Begin, m_iPosition); - - int32_t iLen = m_pStreamImp->WriteData(pBuffer, iBufferSize); - m_iPosition = m_pStreamImp->GetPosition(); - m_iLength = std::max(m_iLength, m_iPosition); - - return iLen; + return m_pStreamImp->WriteData(pBuffer, iBufferSize); } int32_t CFGAS_Stream::WriteString(const wchar_t* pStr, int32_t iLength) { @@ -605,13 +578,7 @@ int32_t CFGAS_Stream::WriteString(const wchar_t* pStr, int32_t iLength) { return -1; if ((m_dwAccess & FX_STREAMACCESS_Write) == 0) return -1; - if (m_pStreamImp->GetPosition() != m_iPosition) - m_pStreamImp->Seek(FX_STREAMSEEK_Begin, m_iPosition); - - int32_t iLen = m_pStreamImp->WriteString(pStr, iLength); - m_iPosition = m_pStreamImp->GetPosition(); - m_iLength = std::max(m_iLength, m_iPosition); - return iLen; + return m_pStreamImp->WriteString(pStr, iLength); } void CFGAS_Stream::Flush() { |