diff options
Diffstat (limited to 'core/fpdfapi/parser/cpdf_stream_acc.cpp')
-rw-r--r-- | core/fpdfapi/parser/cpdf_stream_acc.cpp | 15 |
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; } } |