Be more careful casting to widget subclasses.
Part of the effort to reduce unchecked static casts.
Change-Id: I1bff1c53aa7c5804660de4b65cf01523d70fcbb7
Reviewed-on: https://pdfium-review.googlesource.com/38896
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/fpdfsdk/cpdfsdk_interform.cpp b/fpdfsdk/cpdfsdk_interform.cpp
index 9d646b6..3cfc84d 100644
--- a/fpdfsdk/cpdfsdk_interform.cpp
+++ b/fpdfsdk/cpdfsdk_interform.cpp
@@ -111,10 +111,8 @@
auto pIterator = pdfium::MakeUnique<CPDFSDK_AnnotIterator>(
pWidget->GetPageView(), CPDF_Annot::Subtype::WIDGET);
- if (bNext)
- return static_cast<CPDFSDK_Widget*>(pIterator->GetNextAnnot(pWidget));
-
- return static_cast<CPDFSDK_Widget*>(pIterator->GetPrevAnnot(pWidget));
+ return ToCPDFSDKWidget(bNext ? pIterator->GetNextAnnot(pWidget)
+ : pIterator->GetPrevAnnot(pWidget));
}
CPDFSDK_Widget* CPDFSDK_InterForm::GetWidget(CPDF_FormControl* pControl) const {
@@ -144,10 +142,7 @@
pPage = m_pFormFillEnv->GetPageView(nPageIndex);
}
- if (!pPage)
- return nullptr;
-
- return static_cast<CPDFSDK_Widget*>(pPage->GetAnnotByDict(pControlDict));
+ return pPage ? ToCPDFSDKWidget(pPage->GetAnnotByDict(pControlDict)) : nullptr;
}
void CPDFSDK_InterForm::GetWidgets(