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