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) { |