Chromium Code Reviews| 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 { |