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..929f162725c8e068bf2d0b3606d85827cc847389 100644 |
--- a/core/fpdfapi/fpdf_page/cpdf_imageobject.cpp |
+++ b/core/fpdfapi/fpdf_page/cpdf_imageobject.cpp |
@@ -13,15 +13,19 @@ |
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()); |
- } |
+ |
+ auto* pPageData = m_pImage->GetDocument()->GetPageData(); |
+ if (pPageData->ReleaseImage(m_pImage->GetStream())) |
+ return; |
+ |
+ delete m_pImage; |
Lei Zhang
2016/08/01 22:08:03
Not sure what else we can do here.
Wei Li
2016/08/04 18:00:39
I suspect this might not be the right thing to do.
Lei Zhang
2016/08/04 21:58:25
Does you comment apply to patch set 2 as well?
Wei Li
2016/08/04 23:36:39
Yes, I think both patches share similar logic. Cou
Lei Zhang
2016/08/05 18:55:22
So CPDF_ImageObject::m_pImage gets assigned from 6
|
} |
CPDF_ImageObject* CPDF_ImageObject::Clone() const { |