Assert CPDFSDK_Annot::GetPageView() never returns nullptr. Then remove some dead code as a result. Change-Id: I544c711b569a0f4a6ec59e69101e147c9cb3fac2 Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/66376 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/fpdfsdk/cpdfsdk_annot.cpp b/fpdfsdk/cpdfsdk_annot.cpp index d6712d0..70f23a5 100644 --- a/fpdfsdk/cpdfsdk_annot.cpp +++ b/fpdfsdk/cpdfsdk_annot.cpp
@@ -11,9 +11,11 @@ #include "fpdfsdk/cpdfsdk_pageview.h" CPDFSDK_Annot::CPDFSDK_Annot(CPDFSDK_PageView* pPageView) - : m_pPageView(pPageView) {} + : m_pPageView(pPageView) { + ASSERT(m_pPageView); +} -CPDFSDK_Annot::~CPDFSDK_Annot() {} +CPDFSDK_Annot::~CPDFSDK_Annot() = default; CPDFSDK_BAAnnot* CPDFSDK_Annot::AsBAAnnot() { return nullptr; @@ -25,10 +27,10 @@ IPDF_Page* CPDFSDK_Annot::GetXFAPage() { #ifdef PDF_ENABLE_XFA - if (m_pPageView) - return m_pPageView->GetXFAPage(); -#endif + return m_pPageView->GetXFAPage(); +#else return nullptr; +#endif } int CPDFSDK_Annot::GetLayoutOrder() const { @@ -63,5 +65,5 @@ } CPDF_Page* CPDFSDK_Annot::GetPDFPage() { - return m_pPageView ? m_pPageView->GetPDFPage() : nullptr; + return m_pPageView->GetPDFPage(); }
diff --git a/fpdfsdk/cpdfsdk_annot.h b/fpdfsdk/cpdfsdk_annot.h index 7438795..666befc 100644 --- a/fpdfsdk/cpdfsdk_annot.h +++ b/fpdfsdk/cpdfsdk_annot.h
@@ -38,6 +38,7 @@ CPDF_Page* GetPDFPage(); // Returns PDF page or nullptr. IPDF_Page* GetXFAPage(); // Returns XFA page or nullptr. + // Never returns nullptr. CPDFSDK_PageView* GetPageView() const { return m_pPageView.Get(); } protected:
diff --git a/fpdfsdk/cpdfsdk_annothandlermgr.cpp b/fpdfsdk/cpdfsdk_annothandlermgr.cpp index 8bdbfc9..d79b9ff 100644 --- a/fpdfsdk/cpdfsdk_annothandlermgr.cpp +++ b/fpdfsdk/cpdfsdk_annothandlermgr.cpp
@@ -238,13 +238,13 @@ return GetAnnotHandler(pAnnot)->OnKeyDown(pAnnot, nKeyCode, nFlag); } ObservedPtr<CPDFSDK_Annot> pObservedAnnot(pAnnot); - CPDFSDK_PageView* pPage = pAnnot->GetPageView(); - CPDFSDK_Annot* pFocusAnnot = pPage->GetFocusAnnot(); + CPDFSDK_PageView* pPageView = pAnnot->GetPageView(); + CPDFSDK_Annot* pFocusAnnot = pPageView->GetFocusAnnot(); if (pFocusAnnot && (nKeyCode == FWL_VKEY_Tab)) { ObservedPtr<CPDFSDK_Annot> pNext( GetNextAnnot(pFocusAnnot, !CPWL_Wnd::IsSHIFTKeyDown(nFlag))); if (pNext && pNext.Get() != pFocusAnnot) { - pPage->GetFormFillEnv()->SetFocusAnnot(&pNext); + pPageView->GetFormFillEnv()->SetFocusAnnot(&pNext); return true; } }
diff --git a/fpdfsdk/cpdfsdk_formfillenvironment.cpp b/fpdfsdk/cpdfsdk_formfillenvironment.cpp index 243528e..73a065d 100644 --- a/fpdfsdk/cpdfsdk_formfillenvironment.cpp +++ b/fpdfsdk/cpdfsdk_formfillenvironment.cpp
@@ -74,12 +74,12 @@ if (!widget) return; - CPDFSDK_PageView* pPageView = widget->GetPageView(); IPDF_Page* pPage = widget->GetPage(); - if (!pPage || !pPageView) + if (!pPage) return; - CFX_Matrix device2page = pPageView->GetCurrentMatrix().GetInverse(); + CFX_Matrix device2page = + widget->GetPageView()->GetCurrentMatrix().GetInverse(); CFX_PointF left_top = device2page.Transform(CFX_PointF(rect.left, rect.top)); CFX_PointF right_bottom = device2page.Transform(CFX_PointF(rect.right, rect.bottom)); @@ -684,8 +684,7 @@ if (!pAnnot->HasObservable()) return false; - CPDFSDK_PageView* pPageView = (*pAnnot)->GetPageView(); - if (!pPageView || !pPageView->IsValid()) + if (!(*pAnnot)->GetPageView()->IsValid()) return false; CPDFSDK_AnnotHandlerMgr* pAnnotHandler = GetAnnotHandlerMgr(); @@ -764,7 +763,7 @@ } CPDFSDK_PageView* pPageView = (*pAnnot)->GetPageView(); - if (!pPageView || !pPageView->IsValid()) + if (!pPageView->IsValid()) return; CPDF_Page* cpdf_page = (*pAnnot)->GetPDFPage(); @@ -779,4 +778,4 @@ FPDFAnnotationFromCPDFAnnotContext(focused_annot.get()); m_pInfo->FFI_OnFocusChange(m_pInfo, fpdf_annot, pPageView->GetPageIndex()); -} \ No newline at end of file +}
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_widgethandler.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_widgethandler.cpp index 84f2959..855c5c4 100644 --- a/fpdfsdk/fpdfxfa/cpdfxfa_widgethandler.cpp +++ b/fpdfsdk/fpdfxfa/cpdfxfa_widgethandler.cpp
@@ -629,11 +629,8 @@ if (!pAnnot) return nullptr; - CPDFSDK_PageView* pPageView = pAnnot->GetPageView(); - if (!pPageView) - return nullptr; - - CPDFSDK_FormFillEnvironment* pFormFillEnv = pPageView->GetFormFillEnv(); + CPDFSDK_FormFillEnvironment* pFormFillEnv = + pAnnot->GetPageView()->GetFormFillEnv(); if (!pFormFillEnv) return nullptr;
diff --git a/fxjs/cjs_field.cpp b/fxjs/cjs_field.cpp index 3e07a3a..1cd0d3f 100644 --- a/fxjs/cjs_field.cpp +++ b/fxjs/cjs_field.cpp
@@ -1531,13 +1531,9 @@ return CJS_Result::Failure(JSMessage::kBadObjectError); auto* pWidget = ToCPDFSDKWidget(pObserved.Get()); - CPDFSDK_PageView* pPageView = pWidget->GetPageView(); - if (!pPageView) - return CJS_Result::Failure(JSMessage::kBadObjectError); - pRuntime->PutArrayElement( PageArray, i, - pRuntime->NewNumber(static_cast<int32_t>(pPageView->GetPageIndex()))); + pRuntime->NewNumber(pWidget->GetPageView()->GetPageIndex())); ++i; } return CJS_Result::Success(PageArray);