Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 PDFium Authors. All rights reserved. | 1 // Copyright 2016 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "core/fpdfapi/fpdf_parser/include/cpdf_stream_acc.h" | 7 #include "core/fpdfapi/fpdf_parser/include/cpdf_stream_acc.h" |
| 8 | 8 |
| 9 #include "core/fpdfapi/fpdf_parser/include/fpdf_parser_decode.h" | 9 #include "core/fpdfapi/fpdf_parser/include/fpdf_parser_decode.h" |
| 10 | 10 |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 49 m_dwSize = dwDecryptedSize; | 49 m_dwSize = dwDecryptedSize; |
| 50 } else { | 50 } else { |
| 51 FX_BOOL bRet = PDF_DataDecode( | 51 FX_BOOL bRet = PDF_DataDecode( |
| 52 pDecryptedData, dwDecryptedSize, m_pStream->GetDict(), m_pData, | 52 pDecryptedData, dwDecryptedSize, m_pStream->GetDict(), m_pData, |
| 53 m_dwSize, m_ImageDecoder, m_pImageParam, estimated_size, bImageAcc); | 53 m_dwSize, m_ImageDecoder, m_pImageParam, estimated_size, bImageAcc); |
| 54 if (!bRet) { | 54 if (!bRet) { |
| 55 m_pData = pDecryptedData; | 55 m_pData = pDecryptedData; |
| 56 m_dwSize = dwDecryptedSize; | 56 m_dwSize = dwDecryptedSize; |
| 57 } | 57 } |
| 58 } | 58 } |
| 59 if (pSrcData != pStream->GetRawData() && pSrcData != m_pData) { | 59 if (pSrcData != pStream->GetRawData() && pSrcData != m_pData) |
| 60 FX_Free(pSrcData); | 60 FX_Free(pSrcData); |
| 61 } | |
| 62 if (pDecryptedData != pSrcData && pDecryptedData != m_pData) { | |
| 63 FX_Free(pDecryptedData); | |
|
Tom Sepez
2016/06/03 18:54:37
Why is OK to remove this? We might leak.
Wei Li
2016/06/03 19:48:21
pDecryptedData is always same as pre-freed pSrcDat
| |
| 64 } | |
| 65 m_pSrcData = nullptr; | 61 m_pSrcData = nullptr; |
| 66 m_bNewBuf = m_pData != pStream->GetRawData(); | 62 m_bNewBuf = m_pData != pStream->GetRawData(); |
| 67 } | 63 } |
| 68 | 64 |
| 69 CPDF_StreamAcc::~CPDF_StreamAcc() { | 65 CPDF_StreamAcc::~CPDF_StreamAcc() { |
| 70 if (m_bNewBuf) { | 66 if (m_bNewBuf) |
| 71 FX_Free(m_pData); | 67 FX_Free(m_pData); |
| 72 } | |
| 73 FX_Free(m_pSrcData); | 68 FX_Free(m_pSrcData); |
| 74 } | 69 } |
| 75 | 70 |
| 76 const uint8_t* CPDF_StreamAcc::GetData() const { | 71 const uint8_t* CPDF_StreamAcc::GetData() const { |
| 77 if (m_bNewBuf) { | 72 if (m_bNewBuf) |
| 78 return m_pData; | 73 return m_pData; |
| 79 } | 74 if (!m_pStream) |
|
Tom Sepez
2016/06/03 18:54:37
nit: maybe ? oper here instead.
Wei Li
2016/06/03 19:48:21
Done.
| |
| 80 if (!m_pStream) { | |
| 81 return nullptr; | 75 return nullptr; |
| 82 } | |
| 83 return m_pStream->GetRawData(); | 76 return m_pStream->GetRawData(); |
| 84 } | 77 } |
| 85 | 78 |
| 86 uint32_t CPDF_StreamAcc::GetSize() const { | 79 uint32_t CPDF_StreamAcc::GetSize() const { |
| 87 if (m_bNewBuf) { | 80 if (m_bNewBuf) |
| 88 return m_dwSize; | 81 return m_dwSize; |
| 89 } | 82 if (!m_pStream) |
|
Tom Sepez
2016/06/03 18:54:37
ditto
Wei Li
2016/06/03 19:48:21
Done.
| |
| 90 if (!m_pStream) { | |
| 91 return 0; | 83 return 0; |
| 92 } | |
| 93 return m_pStream->GetRawSize(); | 84 return m_pStream->GetRawSize(); |
| 94 } | 85 } |
| 95 | 86 |
| 96 uint8_t* CPDF_StreamAcc::DetachData() { | 87 uint8_t* CPDF_StreamAcc::DetachData() { |
| 97 if (m_bNewBuf) { | 88 if (m_bNewBuf) { |
| 98 uint8_t* p = m_pData; | 89 uint8_t* p = m_pData; |
| 99 m_pData = nullptr; | 90 m_pData = nullptr; |
| 100 m_dwSize = 0; | 91 m_dwSize = 0; |
| 101 return p; | 92 return p; |
| 102 } | 93 } |
| 103 uint8_t* p = FX_Alloc(uint8_t, m_dwSize); | 94 uint8_t* p = FX_Alloc(uint8_t, m_dwSize); |
| 104 FXSYS_memcpy(p, m_pData, m_dwSize); | 95 FXSYS_memcpy(p, m_pData, m_dwSize); |
| 105 return p; | 96 return p; |
| 106 } | 97 } |
| OLD | NEW |