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(); }