Index: core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp |
diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp |
index ad4038d71b3fb9a5b3bc2706dae1a75e3c12402f..fe20a92a5b9a1eed59baf12e469ab59e71ed42ec 100644 |
--- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp |
+++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp |
@@ -1156,25 +1156,26 @@ void CPDF_IndirectObjects::ReleaseIndirectObject(FX_DWORD objnum) { |
pValue->Destroy(); |
m_IndirectObjs.RemoveKey((void*)(uintptr_t)objnum); |
} |
-void CPDF_IndirectObjects::InsertIndirectObject(FX_DWORD objnum, |
- CPDF_Object* pObj) { |
- if (objnum == 0 || pObj == NULL) { |
- return; |
- } |
- void* value = NULL; |
+FX_BOOL CPDF_IndirectObjects::InsertIndirectObject(FX_DWORD objnum, |
+ CPDF_Object* pObj) { |
+ if (!objnum || !pObj) |
+ return FALSE; |
+ void* value = nullptr; |
if (m_IndirectObjs.Lookup((void*)(uintptr_t)objnum, value)) { |
if (value) { |
- CPDF_Object* pValue = static_cast<CPDF_Object*>(value); |
- if (pObj->GetGenNum() <= pValue->GetGenNum()) |
- return; |
- pValue->Destroy(); |
+ CPDF_Object* pExistingObj = static_cast<CPDF_Object*>(value); |
+ if (pObj->GetGenNum() <= pExistingObj->GetGenNum()) { |
+ pObj->Destroy(); |
+ return FALSE; |
+ } |
+ pExistingObj->Destroy(); |
} |
} |
pObj->m_ObjNum = objnum; |
m_IndirectObjs.SetAt((void*)(uintptr_t)objnum, pObj); |
- if (m_LastObjNum < objnum) { |
+ if (m_LastObjNum < objnum) |
m_LastObjNum = objnum; |
- } |
+ return TRUE; |
} |
FX_DWORD CPDF_IndirectObjects::GetLastObjNum() const { |
return m_LastObjNum; |