diff options
Diffstat (limited to 'core/fpdfapi/parser/cpdf_indirect_object_holder.cpp')
-rw-r--r-- | core/fpdfapi/parser/cpdf_indirect_object_holder.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/core/fpdfapi/parser/cpdf_indirect_object_holder.cpp b/core/fpdfapi/parser/cpdf_indirect_object_holder.cpp index 2a57411368..42e312ca64 100644 --- a/core/fpdfapi/parser/cpdf_indirect_object_holder.cpp +++ b/core/fpdfapi/parser/cpdf_indirect_object_holder.cpp @@ -52,7 +52,7 @@ CPDF_Object* CPDF_IndirectObjectHolder::GetOrParseIndirectObject( return nullptr; } - pNewObj->m_ObjNum = objnum; + pNewObj->SetObjNum(objnum); m_LastObjNum = std::max(m_LastObjNum, objnum); insert_result.first->second = std::move(pNewObj); return insert_result.first->second.get(); @@ -65,8 +65,8 @@ std::unique_ptr<CPDF_Object> CPDF_IndirectObjectHolder::ParseIndirectObject( CPDF_Object* CPDF_IndirectObjectHolder::AddIndirectObject( std::unique_ptr<CPDF_Object> pObj) { - CHECK(!pObj->m_ObjNum); - pObj->m_ObjNum = ++m_LastObjNum; + CHECK(!pObj->GetObjNum()); + pObj->SetObjNum(++m_LastObjNum); auto& obj_holder = m_IndirectObjs[m_LastObjNum]; if (obj_holder) @@ -84,13 +84,11 @@ bool CPDF_IndirectObjectHolder::ReplaceIndirectObjectIfHigherGeneration( return false; auto& obj_holder = m_IndirectObjs[objnum]; - const CPDF_Object* old_object = FilterInvalidObjNum(obj_holder.get()); - if (old_object && pObj->GetGenNum() <= old_object->GetGenNum()) return false; - pObj->m_ObjNum = objnum; + pObj->SetObjNum(objnum); if (obj_holder) m_OrphanObjs.push_back(std::move(obj_holder)); |