summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/cpdf_array.cpp
diff options
context:
space:
mode:
authordsinclair <dsinclair@chromium.org>2016-11-04 08:25:34 -0700
committerCommit bot <commit-bot@chromium.org>2016-11-04 08:25:34 -0700
commitf0d5b6c35fa343108a3ab7a25bc2cc2b3cf105b3 (patch)
treeedc3d5f35225971679e581c8ef951de8275a944b /core/fpdfapi/parser/cpdf_array.cpp
parent4de3d095c9d9e961f93750cf1ebd489fd515be12 (diff)
downloadpdfium-f0d5b6c35fa343108a3ab7a25bc2cc2b3cf105b3.tar.xz
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
Diffstat (limited to 'core/fpdfapi/parser/cpdf_array.cpp')
-rw-r--r--core/fpdfapi/parser/cpdf_array.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/core/fpdfapi/parser/cpdf_array.cpp b/core/fpdfapi/parser/cpdf_array.cpp
index 4000bbc980..e118fd66e6 100644
--- a/core/fpdfapi/parser/cpdf_array.cpp
+++ b/core/fpdfapi/parser/cpdf_array.cpp
@@ -24,7 +24,7 @@ CPDF_Array::~CPDF_Array() {
m_ObjNum = kInvalidObjNum;
for (auto& it : m_Objects) {
if (it && it->GetObjNum() != kInvalidObjNum)
- delete it;
+ it->Release();
}
}
@@ -139,9 +139,10 @@ void CPDF_Array::RemoveAt(size_t i, size_t nCount) {
if (nCount <= 0 || nCount > m_Objects.size() - i)
return;
- for (size_t j = 0; j < nCount; ++j)
- delete m_Objects[i + j];
-
+ for (size_t j = 0; j < nCount; ++j) {
+ if (CPDF_Object* p = m_Objects[i + j])
+ p->Release();
+ }
m_Objects.erase(m_Objects.begin() + i, m_Objects.begin() + i + nCount);
}
@@ -165,7 +166,9 @@ void CPDF_Array::SetAt(size_t i, CPDF_Object* pObj) {
ASSERT(false);
return;
}
- delete m_Objects[i];
+ if (CPDF_Object* pOld = m_Objects[i])
+ pOld->Release();
+
m_Objects[i] = pObj;
}