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.cpp15
1 files changed, 6 insertions, 9 deletions
diff --git a/core/fpdfapi/parser/cpdf_stream_acc.cpp b/core/fpdfapi/parser/cpdf_stream_acc.cpp
index c87e404186..6516a2ff2c 100644
--- a/core/fpdfapi/parser/cpdf_stream_acc.cpp
+++ b/core/fpdfapi/parser/cpdf_stream_acc.cpp
@@ -115,7 +115,7 @@ void CPDF_StreamAcc::ProcessFilteredData(uint32_t estimated_size,
pSrcData = std::move(pTempSrcData);
}
- uint8_t* pDecodedData = nullptr;
+ std::unique_ptr<uint8_t, FxFreeDeleter> pDecodedData;
uint32_t dwDecodedSize = 0;
if (!PDF_DataDecode({pSrcData.Get(), dwSrcSize}, m_pStream->GetDict(),
estimated_size, bImageAcc, &pDecodedData, &dwDecodedSize,
@@ -125,16 +125,13 @@ void CPDF_StreamAcc::ProcessFilteredData(uint32_t estimated_size,
return;
}
- if (!pDecodedData)
- return;
-
- if (pDecodedData == pSrcData.Get()) {
+ if (pDecodedData) {
+ ASSERT(pDecodedData.get() != pSrcData.Get());
+ m_pData = std::move(pDecodedData);
+ m_dwSize = dwDecodedSize;
+ } else {
m_pData = std::move(pSrcData);
m_dwSize = dwSrcSize;
- } else {
- std::unique_ptr<uint8_t, FxFreeDeleter> p(pDecodedData);
- m_pData = std::move(p);
- m_dwSize = dwDecodedSize;
}
}