Index: core/fpdfapi/parser/cpdf_indirect_object_holder.cpp |
diff --git a/core/fpdfapi/parser/cpdf_indirect_object_holder.cpp b/core/fpdfapi/parser/cpdf_indirect_object_holder.cpp |
index d3204e04e5d22dbed4e78630391bcbfa793cdde1..c5e87cd67035877da03ba9db3b4a254c1c612863 100644 |
--- a/core/fpdfapi/parser/cpdf_indirect_object_holder.cpp |
+++ b/core/fpdfapi/parser/cpdf_indirect_object_holder.cpp |
@@ -55,18 +55,17 @@ uint32_t CPDF_IndirectObjectHolder::AddIndirectObject(CPDF_Object* pObj) { |
bool CPDF_IndirectObjectHolder::ReplaceIndirectObjectIfHigherGeneration( |
uint32_t objnum, |
- CPDF_Object* pObj) { |
+ std::unique_ptr<CPDF_Object> pObj) { |
ASSERT(objnum); |
if (!pObj) |
return false; |
CPDF_Object* pOldObj = GetIndirectObject(objnum); |
- if (pOldObj && pObj->GetGenNum() <= pOldObj->GetGenNum()) { |
- delete pObj; |
+ if (pOldObj && pObj->GetGenNum() <= pOldObj->GetGenNum()) |
return false; |
- } |
+ |
pObj->m_ObjNum = objnum; |
- m_IndirectObjs[objnum].reset(pObj); |
+ m_IndirectObjs[objnum] = std::move(pObj); |
m_LastObjNum = std::max(m_LastObjNum, objnum); |
return true; |
} |