| 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 6c93bcb39fd45f3401931b738274eb24fdda9abe..e945ab52a0010b5c1cc7c911b3a6596cec05a6ab 100644
|
| --- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp
|
| +++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp
|
| @@ -1271,9 +1271,15 @@ void CPDF_IndirectObjects::InsertIndirectObject(FX_DWORD objnum, CPDF_Object* pO
|
| if (objnum == 0 || pObj == NULL) {
|
| return;
|
| }
|
| - FX_LPVOID value;
|
| + FX_LPVOID value = NULL;
|
| if (m_IndirectObjs.Lookup((FX_LPVOID)(FX_UINTPTR)objnum, value)) {
|
| - ((CPDF_Object*)value)->Destroy();
|
| + if (value)
|
| + {
|
| + if (pObj->GetGenNum() <= ((CPDF_Object*)value)->GetGenNum())
|
| + return;
|
| + else
|
| + ((CPDF_Object*)value)->Destroy();
|
| + }
|
| }
|
| pObj->m_ObjNum = objnum;
|
| m_IndirectObjs.SetAt((FX_LPVOID)(FX_UINTPTR)objnum, pObj);
|
|
|