| 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);
|
| }
|
|
|