| Index: core/fpdfapi/fpdf_parser/cpdf_indirect_object_holder.cpp
|
| diff --git a/core/fpdfapi/fpdf_parser/cpdf_indirect_object_holder.cpp b/core/fpdfapi/fpdf_parser/cpdf_indirect_object_holder.cpp
|
| index 33f45a53bf1003227fc9a93dfccef077697108b7..444a676a0e282717e16525ecebd87b622eebfcaa 100644
|
| --- a/core/fpdfapi/fpdf_parser/cpdf_indirect_object_holder.cpp
|
| +++ b/core/fpdfapi/fpdf_parser/cpdf_indirect_object_holder.cpp
|
| @@ -9,11 +9,7 @@
|
| #include "core/fpdfapi/fpdf_parser/include/cpdf_object.h"
|
| #include "core/fpdfapi/fpdf_parser/include/cpdf_parser.h"
|
|
|
| -CPDF_IndirectObjectHolder::CPDF_IndirectObjectHolder(CPDF_Parser* pParser)
|
| - : m_pParser(pParser), m_LastObjNum(0) {
|
| - if (pParser)
|
| - m_LastObjNum = m_pParser->GetLastObjNum();
|
| -}
|
| +CPDF_IndirectObjectHolder::CPDF_IndirectObjectHolder() : m_LastObjNum(0) {}
|
|
|
| CPDF_IndirectObjectHolder::~CPDF_IndirectObjectHolder() {
|
| for (const auto& pair : m_IndirectObjs)
|
| @@ -25,24 +21,10 @@ CPDF_Object* CPDF_IndirectObjectHolder::GetIndirectObject(uint32_t objnum) {
|
| return nullptr;
|
|
|
| auto it = m_IndirectObjs.find(objnum);
|
| - if (it != m_IndirectObjs.end())
|
| - return it->second->GetObjNum() != CPDF_Object::kInvalidObjNum ? it->second
|
| - : nullptr;
|
| -
|
| - if (!m_pParser)
|
| - return nullptr;
|
| -
|
| - CPDF_Object* pObj = m_pParser->ParseIndirectObject(this, objnum);
|
| - if (!pObj)
|
| + if (it == m_IndirectObjs.end() ||
|
| + it->second->GetObjNum() == CPDF_Object::kInvalidObjNum)
|
| return nullptr;
|
| -
|
| - pObj->m_ObjNum = objnum;
|
| - m_LastObjNum = std::max(m_LastObjNum, objnum);
|
| - if (m_IndirectObjs[objnum])
|
| - m_IndirectObjs[objnum]->Destroy();
|
| -
|
| - m_IndirectObjs[objnum] = pObj;
|
| - return pObj;
|
| + return it->second;
|
| }
|
|
|
| uint32_t CPDF_IndirectObjectHolder::AddIndirectObject(CPDF_Object* pObj) {
|
|
|