| Index: core/fpdfapi/page/cpdf_image.cpp
|
| diff --git a/core/fpdfapi/page/cpdf_image.cpp b/core/fpdfapi/page/cpdf_image.cpp
|
| index 23c6e4f786c45c07aaaa1ac0bc8ab4efc3a821a4..976d6d8c471bc4bcefc698597b8400c36ac31bfd 100644
|
| --- a/core/fpdfapi/page/cpdf_image.cpp
|
| +++ b/core/fpdfapi/page/cpdf_image.cpp
|
| @@ -25,14 +25,16 @@
|
|
|
| CPDF_Image::CPDF_Image(CPDF_Document* pDoc) : m_pDocument(pDoc) {}
|
|
|
| -CPDF_Image::CPDF_Image(CPDF_Document* pDoc, UniqueStream pStream)
|
| +CPDF_Image::CPDF_Image(CPDF_Document* pDoc,
|
| + std::unique_ptr<CPDF_Stream> pStream)
|
| : m_pDocument(pDoc),
|
| m_pStream(pStream.get()),
|
| m_pOwnedStream(std::move(pStream)) {
|
| if (!m_pStream)
|
| return;
|
|
|
| - m_pOwnedDict = ToDictionary(UniqueObject(m_pStream->GetDict()->Clone()));
|
| + m_pOwnedDict =
|
| + ToDictionary(std::unique_ptr<CPDF_Object>(m_pStream->GetDict()->Clone()));
|
| m_pDict = m_pOwnedDict.get();
|
| FinishInitialization();
|
| }
|
| @@ -61,13 +63,15 @@ void CPDF_Image::FinishInitialization() {
|
| CPDF_Image* CPDF_Image::Clone() {
|
| CPDF_Image* pImage = new CPDF_Image(m_pDocument);
|
| if (m_pOwnedStream) {
|
| - pImage->m_pOwnedStream = ToStream(UniqueObject(m_pOwnedStream->Clone()));
|
| + pImage->m_pOwnedStream =
|
| + ToStream(std::unique_ptr<CPDF_Object>(m_pOwnedStream->Clone()));
|
| pImage->m_pStream = pImage->m_pOwnedStream.get();
|
| } else {
|
| pImage->m_pStream = m_pStream;
|
| }
|
| if (m_pOwnedDict) {
|
| - pImage->m_pOwnedDict = ToDictionary(UniqueObject(m_pOwnedDict->Clone()));
|
| + pImage->m_pOwnedDict =
|
| + ToDictionary(std::unique_ptr<CPDF_Object>(m_pOwnedDict->Clone()));
|
| pImage->m_pDict = pImage->m_pOwnedDict.get();
|
| } else {
|
| pImage->m_pDict = m_pDict;
|
| @@ -289,10 +293,8 @@ void CPDF_Image::SetImage(const CFX_DIBitmap* pBitmap, int32_t iCompress) {
|
| pNewBitmap->Copy(pBitmap);
|
| pNewBitmap->ConvertFormat(FXDIB_Rgb);
|
| SetImage(pNewBitmap, iCompress);
|
| - if (pDict) {
|
| - pDict->Release();
|
| - pDict = nullptr;
|
| - }
|
| + delete pDict;
|
| + pDict = nullptr;
|
| FX_Free(dest_buf);
|
| dest_buf = nullptr;
|
| dest_size = 0;
|
|
|