Index: core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp |
diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp |
index 132286475766ddfa8dfc9b4eb9dc5b5ff50642cf..b94a6d91b38c835e8fd4028791330c8ee4990ad8 100644 |
--- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp |
+++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp |
@@ -7,6 +7,7 @@ |
#include "core/include/fpdfapi/fpdf_parser.h" |
#include "core/include/fxcrt/fx_string.h" |
+#include "third_party/base/stl_util.h" |
namespace { |
@@ -284,12 +285,10 @@ CPDF_Object* CPDF_Object::CloneInternal(FX_BOOL bDirect, |
case PDFOBJ_REFERENCE: { |
const CPDF_Reference* pRef = AsReference(); |
FX_DWORD obj_num = pRef->GetRefObjNum(); |
- if (bDirect && visited->find(obj_num) == visited->end()) { |
+ if (bDirect && !pdfium::ContainsKey(*visited, obj_num)) { |
visited->insert(obj_num); |
- if (!pRef->GetDirect()) |
- return nullptr; |
- |
- return pRef->GetDirect()->CloneInternal(TRUE, visited); |
+ auto* pDirect = pRef->GetDirect(); |
+ return pDirect ? pDirect->CloneInternal(TRUE, visited) : nullptr; |
} |
return new CPDF_Reference(pRef->m_pObjList, obj_num); |
} |