Chromium Code Reviews| Index: core/src/fpdfapi/fpdf_page/fpdf_page_doc.cpp |
| diff --git a/core/src/fpdfapi/fpdf_page/fpdf_page_doc.cpp b/core/src/fpdfapi/fpdf_page/fpdf_page_doc.cpp |
| index 77db4534fbd27f345ede1a73f9cb5ce3bbaea08e..eb6482dbb282b1ac3a774db3b65a652a04e090fa 100644 |
| --- a/core/src/fpdfapi/fpdf_page/fpdf_page_doc.cpp |
| +++ b/core/src/fpdfapi/fpdf_page/fpdf_page_doc.cpp |
| @@ -165,18 +165,6 @@ void CPDF_DocPageData::Clear(FX_BOOL bForceRelease) |
| fontData->m_Obj = NULL; |
| } |
| } |
| - pos = m_ImageMap.GetStartPosition(); |
| - while (pos) { |
| - FX_DWORD objNum; |
| - CPDF_CountedObject<CPDF_Image*>* imageData; |
| - m_ImageMap.GetNextAssoc(pos, objNum, imageData); |
| - nCount = imageData->m_nCount; |
| - if (bForceRelease || nCount < 2) { |
| - delete imageData->m_Obj; |
| - delete imageData; |
| - m_ImageMap.RemoveKey(objNum); |
| - } |
| - } |
| pos = m_ColorSpaceMap.GetStartPosition(); |
| while (pos) { |
| CPDF_Object* csKey; |
| @@ -229,9 +217,23 @@ void CPDF_DocPageData::Clear(FX_BOOL bForceRelease) |
| m_PatternMap.GetNextAssoc(pos, ptObj, ptData); |
| nCount = ptData->m_nCount; |
|
Tom Sepez
2014/09/19 17:36:31
nit: if ptObj->m_obj is NULL, we can short-circuit
|
| if (bForceRelease || nCount < 2) { |
| - ptData->m_Obj->SetForceClear(bForceRelease); |
| - delete ptData->m_Obj; |
| - ptData->m_Obj = NULL; |
| + if (ptData->m_Obj) { |
| + ptData->m_Obj->SetForceClear(bForceRelease); |
| + delete ptData->m_Obj; |
| + ptData->m_Obj = NULL; |
| + } |
| + } |
| + } |
| + pos = m_ImageMap.GetStartPosition(); |
| + while (pos) { |
| + FX_DWORD objNum; |
| + CPDF_CountedObject<CPDF_Image*>* imageData; |
| + m_ImageMap.GetNextAssoc(pos, objNum, imageData); |
| + nCount = imageData->m_nCount; |
| + if (bForceRelease || nCount < 2) { |
| + delete imageData->m_Obj; |
|
Tom Sepez
2014/09/19 17:36:31
do we need to check imageData->m_obj for NULLness
|
| + delete imageData; |
| + m_ImageMap.RemoveKey(objNum); |
| } |
| } |
| } |