Index: core/fpdfapi/parser/cpdf_object_unittest.cpp |
diff --git a/core/fpdfapi/parser/cpdf_object_unittest.cpp b/core/fpdfapi/parser/cpdf_object_unittest.cpp |
index b40a8e373d26f34862f8c3b4f1ad099065e33cf6..4145f248fa51dcb67c01c0ee332525d3a069e6f8 100644 |
--- a/core/fpdfapi/parser/cpdf_object_unittest.cpp |
+++ b/core/fpdfapi/parser/cpdf_object_unittest.cpp |
@@ -90,16 +90,17 @@ class PDFObjectsTest : public testing::Test { |
m_DirectObjs.emplace_back(objs[i]); |
// Indirect references to indirect objects. |
- m_ObjHolder.reset(new CPDF_IndirectObjectHolder()); |
- m_IndirectObjs = { |
- boolean_true_obj->Clone().release(), number_int_obj->Clone().release(), |
- str_spec_obj->Clone().release(), name_obj->Clone().release(), |
- m_ArrayObj->Clone().release(), m_DictObj->Clone().release(), |
- stream_obj->Clone().release()}; |
- for (size_t i = 0; i < m_IndirectObjs.size(); ++i) { |
- m_ObjHolder->AddIndirectObject(m_IndirectObjs[i]); |
- m_RefObjs.emplace_back(new CPDF_Reference( |
- m_ObjHolder.get(), m_IndirectObjs[i]->GetObjNum())); |
+ m_ObjHolder = pdfium::MakeUnique<CPDF_IndirectObjectHolder>(); |
+ m_IndirectObjs = {m_ObjHolder->AddIndirectObject(boolean_true_obj->Clone()), |
+ m_ObjHolder->AddIndirectObject(number_int_obj->Clone()), |
+ m_ObjHolder->AddIndirectObject(str_spec_obj->Clone()), |
+ m_ObjHolder->AddIndirectObject(name_obj->Clone()), |
+ m_ObjHolder->AddIndirectObject(m_ArrayObj->Clone()), |
+ m_ObjHolder->AddIndirectObject(m_DictObj->Clone()), |
+ m_ObjHolder->AddIndirectObject(stream_obj->Clone())}; |
+ for (CPDF_Object* pObj : m_IndirectObjs) { |
+ m_RefObjs.emplace_back( |
+ new CPDF_Reference(m_ObjHolder.get(), pObj->GetObjNum())); |
} |
} |
@@ -837,14 +838,13 @@ TEST(PDFObjectTest, CloneCheckLoop) { |
{ |
CPDF_IndirectObjectHolder objects_holder; |
// Create an object with a reference loop. |
- CPDF_Dictionary* dict_obj = new CPDF_Dictionary(); |
- CPDF_Array* arr_obj = new CPDF_Array; |
- objects_holder.AddIndirectObject(dict_obj); |
- EXPECT_EQ(1u, dict_obj->GetObjNum()); |
- dict_obj->SetFor("arr", arr_obj); |
+ CPDF_Dictionary* dict_obj = objects_holder.NewIndirect<CPDF_Dictionary>(); |
+ std::unique_ptr<CPDF_Array> arr_obj = pdfium::MakeUnique<CPDF_Array>(); |
arr_obj->InsertAt( |
0, new CPDF_Reference(&objects_holder, dict_obj->GetObjNum())); |
CPDF_Object* elem0 = arr_obj->GetObjectAt(0); |
+ dict_obj->SetFor("arr", arr_obj.release()); |
+ EXPECT_EQ(1u, dict_obj->GetObjNum()); |
ASSERT_TRUE(elem0); |
ASSERT_TRUE(elem0->IsReference()); |
EXPECT_EQ(1u, elem0->AsReference()->GetRefObjNum()); |