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 4020b003bbc63bac31bdb6c2f34267a0ee150730..ef3395d3aec70815738a68e054de66fa571868dd 100644 |
--- a/core/fpdfapi/fpdf_parser/cpdf_indirect_object_holder.cpp |
+++ b/core/fpdfapi/fpdf_parser/cpdf_indirect_object_holder.cpp |
@@ -6,7 +6,6 @@ |
#include "core/fpdfapi/fpdf_parser/include/cpdf_indirect_object_holder.h" |
-#include "core/fpdfapi/fpdf_parser/include/cpdf_dictionary.h" |
#include "core/fpdfapi/fpdf_parser/include/cpdf_object.h" |
#include "core/fpdfapi/fpdf_parser/include/cpdf_parser.h" |
@@ -25,28 +24,17 @@ |
if (objnum == 0) |
return nullptr; |
- CPDF_Object* result_obj = nullptr; |
auto it = m_IndirectObjs.find(objnum); |
- if (it != m_IndirectObjs.end()) { |
- CPDF_Object* obj = it->second; |
- result_obj = |
- obj->GetObjNum() != CPDF_Object::kInvalidObjNum ? it->second : nullptr; |
- // Xref object is not used by the pdf document itself. Some software thus |
- // reuse an object number for xref object. So when we get an xref object, |
- // try again to see whether another object with the same number is defined. |
- // If so, use that object instead. See chromium:596947. |
- CPDF_Dictionary* dict = |
- obj->IsStream() ? obj->GetDict() : obj->AsDictionary(); |
- if (!dict || dict->GetStringBy("Type") != "XRef") |
- return result_obj; |
- } |
+ 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) |
- return result_obj; |
+ return nullptr; |
pObj->m_ObjNum = objnum; |
m_LastObjNum = std::max(m_LastObjNum, objnum); |