| Index: core/fpdfapi/fpdf_page/cpdf_imageobject.cpp
|
| diff --git a/core/fpdfapi/fpdf_page/cpdf_imageobject.cpp b/core/fpdfapi/fpdf_page/cpdf_imageobject.cpp
|
| index e2defa80544be13b50a30babfe498ed7edae4a4e..70e5d8e6ba35da1fa2ebd424d982a5a4bab0708d 100644
|
| --- a/core/fpdfapi/fpdf_page/cpdf_imageobject.cpp
|
| +++ b/core/fpdfapi/fpdf_page/cpdf_imageobject.cpp
|
| @@ -13,15 +13,22 @@
|
| CPDF_ImageObject::CPDF_ImageObject() : m_pImage(nullptr) {}
|
|
|
| CPDF_ImageObject::~CPDF_ImageObject() {
|
| - if (!m_pImage) {
|
| + if (!m_pImage)
|
| + return;
|
| +
|
| + if (m_pImage->CanRelease()) {
|
| + m_pImage->Release();
|
| return;
|
| }
|
| - if (m_pImage->IsInline() ||
|
| - (m_pImage->GetStream() && m_pImage->GetStream()->GetObjNum() == 0)) {
|
| - delete m_pImage;
|
| - } else {
|
| - m_pImage->GetDocument()->GetPageData()->ReleaseImage(m_pImage->GetStream());
|
| +
|
| + CPDF_DocPageData* pPageData = m_pImage->GetDocument()->GetPageData();
|
| + const CPDF_Object* pImageStream = m_pImage->GetStream();
|
| + if (pPageData->HasImage(pImageStream)) {
|
| + pPageData->ReleaseImage(pImageStream);
|
| + return;
|
| }
|
| +
|
| + delete m_pImage;
|
| }
|
|
|
| CPDF_ImageObject* CPDF_ImageObject::Clone() const {
|
|
|