From 335cf093231c984a23cb9ea113148ea1f19621ba Mon Sep 17 00:00:00 2001 From: tsepez Date: Wed, 9 Nov 2016 13:28:26 -0800 Subject: Return unique_ptr from CPDF_Object::Clone(). Because that's what clone does. There are numerous release() calls that will go away as more code is converted. Review-Url: https://codereview.chromium.org/2484033002 --- core/fpdfapi/parser/cpdf_array.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'core/fpdfapi/parser/cpdf_array.cpp') diff --git a/core/fpdfapi/parser/cpdf_array.cpp b/core/fpdfapi/parser/cpdf_array.cpp index 4000bbc980..af9b544f0a 100644 --- a/core/fpdfapi/parser/cpdf_array.cpp +++ b/core/fpdfapi/parser/cpdf_array.cpp @@ -44,21 +44,22 @@ const CPDF_Array* CPDF_Array::AsArray() const { return this; } -CPDF_Object* CPDF_Array::Clone() const { +std::unique_ptr CPDF_Array::Clone() const { return CloneObjectNonCyclic(false); } -CPDF_Object* CPDF_Array::CloneNonCyclic( +std::unique_ptr CPDF_Array::CloneNonCyclic( bool bDirect, std::set* pVisited) const { pVisited->insert(this); - CPDF_Array* pCopy = new CPDF_Array(); - for (size_t i = 0; i < GetCount(); i++) { - CPDF_Object* value = m_Objects[i]; - if (!pdfium::ContainsKey(*pVisited, value)) - pCopy->m_Objects.push_back(value->CloneNonCyclic(bDirect, pVisited)); + auto pCopy = pdfium::MakeUnique(); + for (CPDF_Object* value : m_Objects) { + if (!pdfium::ContainsKey(*pVisited, value)) { + pCopy->m_Objects.push_back( + value->CloneNonCyclic(bDirect, pVisited).release()); + } } - return pCopy; + return std::move(pCopy); } CFX_FloatRect CPDF_Array::GetRect() { -- cgit v1.2.3