From f0d5b6c35fa343108a3ab7a25bc2cc2b3cf105b3 Mon Sep 17 00:00:00 2001 From: dsinclair Date: Fri, 4 Nov 2016 08:25:34 -0700 Subject: Revert of Remove CPDF_Object::Release() in favor of direct delete (patchset #11 id:200001 of https://codereview.chromium.org/2384883003/ ) Reason for revert: Looks like it's blocking the roll. https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_compile_dbg_ng/builds/186619 Original issue's description: > Remove CPDF_Object::Release() in favor of direct delete > > Follow-on once we prove Release always deletes in previous CL. > > Committed: https://pdfium.googlesource.com/pdfium/+/4de3d095c9d9e961f93750cf1ebd489fd515be12 TBR=thestig@chromium.org,tsepez@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2478253002 --- core/fpdfdoc/cpdf_annot.cpp | 2 +- core/fpdfdoc/cpdf_filespec_unittest.cpp | 17 ++++++++++++----- core/fpdfdoc/cpdf_formfield.cpp | 3 ++- 3 files changed, 15 insertions(+), 7 deletions(-) (limited to 'core/fpdfdoc') diff --git a/core/fpdfdoc/cpdf_annot.cpp b/core/fpdfdoc/cpdf_annot.cpp index 2f3fc804f3..80edde8a8f 100644 --- a/core/fpdfdoc/cpdf_annot.cpp +++ b/core/fpdfdoc/cpdf_annot.cpp @@ -57,7 +57,7 @@ CPDF_Annot::CPDF_Annot(CPDF_Dictionary* pDict, CPDF_Annot::~CPDF_Annot() { if (m_bOwnedAnnotDict) - delete m_pAnnotDict; + m_pAnnotDict->Release(); ClearCachedAP(); } diff --git a/core/fpdfdoc/cpdf_filespec_unittest.cpp b/core/fpdfdoc/cpdf_filespec_unittest.cpp index 01989ee0bd..72b073510b 100644 --- a/core/fpdfdoc/cpdf_filespec_unittest.cpp +++ b/core/fpdfdoc/cpdf_filespec_unittest.cpp @@ -12,6 +12,13 @@ #include "testing/gtest/include/gtest/gtest.h" #include "testing/test_support.h" +namespace { + +using ScopedObj = std::unique_ptr>; +using ScopedDict = + std::unique_ptr>; +} + TEST(cpdf_filespec, EncodeDecodeFileName) { std::vector test_data = { // Empty src string. @@ -67,7 +74,7 @@ TEST(cpdf_filespec, GetFileName) { L"/docs/test.pdf" #endif }; - std::unique_ptr str_obj(new CPDF_String(test_data.input)); + ScopedObj str_obj(new CPDF_String(test_data.input)); CPDF_FileSpec file_spec(str_obj.get()); CFX_WideString file_name; EXPECT_TRUE(file_spec.GetFileName(&file_name)); @@ -98,7 +105,7 @@ TEST(cpdf_filespec, GetFileName) { }; // Keyword fields in reverse order of precedence to retrieve the file name. const char* const keywords[5] = {"Unix", "Mac", "DOS", "F", "UF"}; - std::unique_ptr dict_obj(new CPDF_Dictionary()); + ScopedDict dict_obj(new CPDF_Dictionary()); CPDF_FileSpec file_spec(dict_obj.get()); CFX_WideString file_name; for (int i = 0; i < 5; ++i) { @@ -115,7 +122,7 @@ TEST(cpdf_filespec, GetFileName) { } { // Invalid object. - std::unique_ptr name_obj(new CPDF_Name("test.pdf")); + ScopedObj name_obj(new CPDF_Name("test.pdf")); CPDF_FileSpec file_spec(name_obj.get()); CFX_WideString file_name; EXPECT_FALSE(file_spec.GetFileName(&file_name)); @@ -136,7 +143,7 @@ TEST(cpdf_filespec, SetFileName) { #endif }; // String object. - std::unique_ptr str_obj(new CPDF_String(L"babababa")); + ScopedObj str_obj(new CPDF_String(L"babababa")); CPDF_FileSpec file_spec1(str_obj.get()); file_spec1.SetFileName(test_data.input); // Check internal object value. @@ -148,7 +155,7 @@ TEST(cpdf_filespec, SetFileName) { EXPECT_TRUE(file_name == test_data.input); // Dictionary object. - std::unique_ptr dict_obj(new CPDF_Dictionary()); + ScopedDict dict_obj(new CPDF_Dictionary()); CPDF_FileSpec file_spec2(dict_obj.get()); file_spec2.SetFileName(test_data.input); // Check internal object value. diff --git a/core/fpdfdoc/cpdf_formfield.cpp b/core/fpdfdoc/cpdf_formfield.cpp index e2240c9f2f..e82ef7800e 100644 --- a/core/fpdfdoc/cpdf_formfield.cpp +++ b/core/fpdfdoc/cpdf_formfield.cpp @@ -575,7 +575,8 @@ bool CPDF_FormField::SetItemSelection(int index, bool bSelected, bool bNotify) { if (pValue->GetUnicodeText() == opt_value) m_pDict->RemoveFor("V"); } else if (pValue->IsArray()) { - std::unique_ptr pArray(new CPDF_Array); + std::unique_ptr> pArray( + new CPDF_Array); for (int i = 0; i < CountOptions(); i++) { if (i != index && IsItemSelected(i)) { opt_value = GetOptionValue(i); -- cgit v1.2.3