summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/cpdf_stream_acc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/parser/cpdf_stream_acc.cpp')
-rw-r--r--core/fpdfapi/parser/cpdf_stream_acc.cpp18
1 files changed, 7 insertions, 11 deletions
diff --git a/core/fpdfapi/parser/cpdf_stream_acc.cpp b/core/fpdfapi/parser/cpdf_stream_acc.cpp
index b539117bd3..5792a80d14 100644
--- a/core/fpdfapi/parser/cpdf_stream_acc.cpp
+++ b/core/fpdfapi/parser/cpdf_stream_acc.cpp
@@ -9,12 +9,7 @@
#include "core/fpdfapi/parser/fpdf_parser_decode.h"
CPDF_StreamAcc::CPDF_StreamAcc(const CPDF_Stream* pStream)
- : m_pData(nullptr),
- m_dwSize(0),
- m_bNewBuf(false),
- m_pImageParam(nullptr),
- m_pStream(pStream),
- m_pSrcData(nullptr) {}
+ : m_pStream(pStream) {}
CPDF_StreamAcc::~CPDF_StreamAcc() {
if (m_bNewBuf)
@@ -28,7 +23,8 @@ void CPDF_StreamAcc::LoadAllData(bool bRawAccess,
if (!m_pStream)
return;
- if (m_pStream->IsMemoryBased() && (!m_pStream->HasFilter() || bRawAccess)) {
+ bool bProcessRawData = bRawAccess || !m_pStream->HasFilter();
+ if (bProcessRawData && m_pStream->IsMemoryBased()) {
m_dwSize = m_pStream->GetRawSize();
m_pData = m_pStream->GetRawData();
return;
@@ -38,14 +34,14 @@ void CPDF_StreamAcc::LoadAllData(bool bRawAccess,
return;
uint8_t* pSrcData;
- if (!m_pStream->IsMemoryBased()) {
+ if (m_pStream->IsMemoryBased()) {
+ pSrcData = m_pStream->GetRawData();
+ } else {
pSrcData = m_pSrcData = FX_Alloc(uint8_t, dwSrcSize);
if (!m_pStream->ReadRawData(0, pSrcData, dwSrcSize))
return;
- } else {
- pSrcData = m_pStream->GetRawData();
}
- if (!m_pStream->HasFilter() || bRawAccess) {
+ if (bProcessRawData) {
m_pData = pSrcData;
m_dwSize = dwSrcSize;
} else if (!PDF_DataDecode(pSrcData, dwSrcSize, m_pStream->GetDict(),