De-virtualize IsSignatureWidget()

Change-Id: I0b81f5fdaacb59a6b5d9f21cc92f72502990c06b
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/85410
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fpdfsdk/cpdfsdk_annotiterator.cpp b/fpdfsdk/cpdfsdk_annotiterator.cpp
index 1c20f4c..aa373d4 100644
--- a/fpdfsdk/cpdfsdk_annotiterator.cpp
+++ b/fpdfsdk/cpdfsdk_annotiterator.cpp
@@ -12,6 +12,7 @@
 #include "core/fpdfapi/parser/cpdf_dictionary.h"
 #include "fpdfsdk/cpdfsdk_annot.h"
 #include "fpdfsdk/cpdfsdk_pageview.h"
+#include "fpdfsdk/cpdfsdk_widget.h"
 #include "third_party/base/containers/contains.h"
 
 namespace {
@@ -69,9 +70,10 @@
 void CPDFSDK_AnnotIterator::CollectAnnots(
     std::vector<UnownedPtr<CPDFSDK_Annot>>* pArray) {
   for (auto* pAnnot : m_pPageView->GetAnnotList()) {
-    if (pdfium::Contains(m_subtypes, pAnnot->GetAnnotSubtype()) &&
-        !pAnnot->IsSignatureWidget()) {
-      pArray->emplace_back(pAnnot);
+    if (pdfium::Contains(m_subtypes, pAnnot->GetAnnotSubtype())) {
+      CPDFSDK_Widget* pWidget = ToCPDFSDKWidget(pAnnot);
+      if (!pWidget || !pWidget->IsSignatureWidget())
+        pArray->emplace_back(pAnnot);
     }
   }
 }