Index: core/fpdfapi/parser/cpdf_dictionary.cpp |
diff --git a/core/fpdfapi/parser/cpdf_dictionary.cpp b/core/fpdfapi/parser/cpdf_dictionary.cpp |
index 37efbbc34a8afaa839572b813d54433574d8a66c..403c29fa0dc4d8be2ac5f0619cf5f876d8286e9c 100644 |
--- a/core/fpdfapi/parser/cpdf_dictionary.cpp |
+++ b/core/fpdfapi/parser/cpdf_dictionary.cpp |
@@ -57,23 +57,23 @@ const CPDF_Dictionary* CPDF_Dictionary::AsDictionary() const { |
return this; |
} |
-CPDF_Object* CPDF_Dictionary::Clone() const { |
+std::unique_ptr<CPDF_Object> CPDF_Dictionary::Clone() const { |
return CloneObjectNonCyclic(false); |
} |
-CPDF_Object* CPDF_Dictionary::CloneNonCyclic( |
+std::unique_ptr<CPDF_Object> CPDF_Dictionary::CloneNonCyclic( |
bool bDirect, |
std::set<const CPDF_Object*>* pVisited) const { |
pVisited->insert(this); |
- CPDF_Dictionary* pCopy = new CPDF_Dictionary(m_pPool); |
+ auto pCopy = pdfium::MakeUnique<CPDF_Dictionary>(m_pPool); |
for (const auto& it : *this) { |
CPDF_Object* value = it.second; |
if (!pdfium::ContainsKey(*pVisited, value)) { |
- pCopy->m_Map.insert( |
- std::make_pair(it.first, value->CloneNonCyclic(bDirect, pVisited))); |
+ pCopy->m_Map.insert(std::make_pair( |
+ it.first, value->CloneNonCyclic(bDirect, pVisited).release())); |
} |
} |
- return pCopy; |
+ return std::move(pCopy); |
} |
CPDF_Object* CPDF_Dictionary::GetObjectFor(const CFX_ByteString& key) const { |