Always pass a page dictionary to CPDF_Page.
The only time it is nullptr is in unit tests. Fix the unit tests by
passing in a dummy dictionary.
Also remove an unnecessary member initialization from CPDF_Page's ctor.
Change-Id: If4d2f000f891581e9620c952dcfa5899c54749ea
Reviewed-on: https://pdfium-review.googlesource.com/c/47632
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator_unittest.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator_unittest.cpp
index b5fbec8..786dd1d 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentgenerator_unittest.cpp
+++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator_unittest.cpp
@@ -55,7 +55,9 @@
pPathObj->set_filltype(FXFILL_ALTERNATE);
pPathObj->path().AppendRect(10, 5, 13, 30);
- auto pTestPage = pdfium::MakeRetain<CPDF_Page>(nullptr, nullptr, false);
+ CPDF_Dictionary dummy_page_dict;
+ auto pTestPage =
+ pdfium::MakeRetain<CPDF_Page>(nullptr, &dummy_page_dict, false);
CPDF_PageContentGenerator generator(pTestPage.Get());
std::ostringstream buf;
TestProcessPath(&generator, &buf, pPathObj.get());
@@ -96,7 +98,9 @@
pPathObj->path().AppendPoint(CFX_PointF(12, 13.64f), FXPT_TYPE::BezierTo,
true);
- auto pTestPage = pdfium::MakeRetain<CPDF_Page>(nullptr, nullptr, false);
+ CPDF_Dictionary dummy_page_dict;
+ auto pTestPage =
+ pdfium::MakeRetain<CPDF_Page>(nullptr, &dummy_page_dict, false);
CPDF_PageContentGenerator generator(pTestPage.Get());
std::ostringstream buf;
TestProcessPath(&generator, &buf, pPathObj.get());
diff --git a/core/fpdfapi/page/cpdf_page.cpp b/core/fpdfapi/page/cpdf_page.cpp
index 23bedae..de44367 100644
--- a/core/fpdfapi/page/cpdf_page.cpp
+++ b/core/fpdfapi/page/cpdf_page.cpp
@@ -26,10 +26,9 @@
: CPDF_PageObjectHolder(pDocument, pPageDict),
m_PageSize(100, 100),
m_pPDFDocument(pDocument) {
+ ASSERT(pPageDict);
if (bPageCache)
m_pPageRender = pdfium::MakeUnique<CPDF_PageRenderCache>(this);
- if (!pPageDict)
- return;
CPDF_Object* pPageAttr = GetPageAttr(pdfium::page_object::kResources);
m_pResources = pPageAttr ? pPageAttr->GetDict() : nullptr;
@@ -68,7 +67,6 @@
break;
}
- m_Transparency = CPDF_Transparency();
m_Transparency.SetIsolated();
LoadTransInfo();
}