Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(131)

Unified Diff: fpdfsdk/fpdf_transformpage.cpp

Issue 2498223005: Make CPDF_Array take unique_ptrs (Closed)
Patch Set: nits Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « fpdfsdk/fpdf_flatten.cpp ('k') | fpdfsdk/fpdfdoc_unittest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: fpdfsdk/fpdf_transformpage.cpp
diff --git a/fpdfsdk/fpdf_transformpage.cpp b/fpdfsdk/fpdf_transformpage.cpp
index 76be4de092322de90aa2f8026bb84065383741c2..beaa6c4d982e9b1915afea0a76a3f2cfaaa31c4d 100644
--- a/fpdfsdk/fpdf_transformpage.cpp
+++ b/fpdfsdk/fpdf_transformpage.cpp
@@ -27,10 +27,10 @@ void SetBoundingBox(CPDF_Page* page,
float right,
float top) {
CPDF_Array* pBoundingBoxArray = new CPDF_Array;
- pBoundingBoxArray->Add(new CPDF_Number(left));
- pBoundingBoxArray->Add(new CPDF_Number(bottom));
- pBoundingBoxArray->Add(new CPDF_Number(right));
- pBoundingBoxArray->Add(new CPDF_Number(top));
+ pBoundingBoxArray->AddNew<CPDF_Number>(left);
+ pBoundingBoxArray->AddNew<CPDF_Number>(bottom);
+ pBoundingBoxArray->AddNew<CPDF_Number>(right);
+ pBoundingBoxArray->AddNew<CPDF_Number>(top);
page->m_pFormDict->SetFor(key, pBoundingBoxArray);
}
@@ -142,23 +142,22 @@ DLLEXPORT FPDF_BOOL STDCALL FPDFPage_TransFormWithClip(FPDF_PAGE page,
CPDF_Array* pArray = ToArray(pContentObj);
if (pArray) {
pContentArray = pArray;
- CPDF_Reference* pRef = new CPDF_Reference(pDoc, pStream->GetObjNum());
- pContentArray->InsertAt(0, pRef);
- pContentArray->AddReference(pDoc, pEndStream->GetObjNum());
+ pContentArray->InsertNewAt<CPDF_Reference>(0, pDoc, pStream->GetObjNum());
+ pContentArray->AddNew<CPDF_Reference>(pDoc, pEndStream->GetObjNum());
} else if (CPDF_Reference* pReference = ToReference(pContentObj)) {
CPDF_Object* pDirectObj = pReference->GetDirect();
if (pDirectObj) {
CPDF_Array* pObjArray = pDirectObj->AsArray();
if (pObjArray) {
pContentArray = pObjArray;
- CPDF_Reference* pRef = new CPDF_Reference(pDoc, pStream->GetObjNum());
- pContentArray->InsertAt(0, pRef);
- pContentArray->AddReference(pDoc, pEndStream->GetObjNum());
+ pContentArray->InsertNewAt<CPDF_Reference>(0, pDoc,
+ pStream->GetObjNum());
+ pContentArray->AddNew<CPDF_Reference>(pDoc, pEndStream->GetObjNum());
} else if (pDirectObj->IsStream()) {
pContentArray = pDoc->NewIndirect<CPDF_Array>();
- pContentArray->AddReference(pDoc, pStream->GetObjNum());
- pContentArray->AddReference(pDoc, pDirectObj->GetObjNum());
- pContentArray->AddReference(pDoc, pEndStream->GetObjNum());
+ pContentArray->AddNew<CPDF_Reference>(pDoc, pStream->GetObjNum());
+ pContentArray->AddNew<CPDF_Reference>(pDoc, pDirectObj->GetObjNum());
+ pContentArray->AddNew<CPDF_Reference>(pDoc, pEndStream->GetObjNum());
pPageDic->SetReferenceFor("Contents", pDoc, pContentArray);
}
}
@@ -307,26 +306,28 @@ DLLEXPORT void STDCALL FPDFPage_InsertClipPath(FPDF_PAGE page,
CPDF_Stream* pStream = pDoc->NewIndirect<CPDF_Stream>(nullptr, 0, pDic);
pStream->SetData(strClip.GetBuffer(), strClip.GetSize());
- CPDF_Array* pContentArray = nullptr;
CPDF_Array* pArray = ToArray(pContentObj);
if (pArray) {
- pContentArray = pArray;
- CPDF_Reference* pRef = new CPDF_Reference(pDoc, pStream->GetObjNum());
- pContentArray->InsertAt(0, pRef);
- } else if (CPDF_Reference* pReference = ToReference(pContentObj)) {
- CPDF_Object* pDirectObj = pReference->GetDirect();
- if (pDirectObj) {
- CPDF_Array* pObjArray = pDirectObj->AsArray();
- if (pObjArray) {
- pContentArray = pObjArray;
- CPDF_Reference* pRef = new CPDF_Reference(pDoc, pStream->GetObjNum());
- pContentArray->InsertAt(0, pRef);
- } else if (pDirectObj->IsStream()) {
- pContentArray = pDoc->NewIndirect<CPDF_Array>();
- pContentArray->AddReference(pDoc, pStream->GetObjNum());
- pContentArray->AddReference(pDoc, pDirectObj->GetObjNum());
- pPageDic->SetReferenceFor("Contents", pDoc, pContentArray);
- }
- }
+ pArray->InsertNewAt<CPDF_Reference>(0, pDoc, pStream->GetObjNum());
+ return;
+ }
+ CPDF_Reference* pReference = ToReference(pContentObj);
+ if (!pReference)
+ return;
+
+ CPDF_Object* pDirectObj = pReference->GetDirect();
+ if (!pDirectObj)
+ return;
+
+ CPDF_Array* pObjArray = pDirectObj->AsArray();
+ if (pObjArray) {
+ pObjArray->InsertNewAt<CPDF_Reference>(0, pDoc, pStream->GetObjNum());
+ return;
+ }
+ if (pDirectObj->IsStream()) {
+ CPDF_Array* pContentArray = pDoc->NewIndirect<CPDF_Array>();
+ pContentArray->AddNew<CPDF_Reference>(pDoc, pStream->GetObjNum());
+ pContentArray->AddNew<CPDF_Reference>(pDoc, pDirectObj->GetObjNum());
+ pPageDic->SetReferenceFor("Contents", pDoc, pContentArray);
}
}
« no previous file with comments | « fpdfsdk/fpdf_flatten.cpp ('k') | fpdfsdk/fpdfdoc_unittest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698