Index: fpdfsdk/javascript/Document.cpp |
diff --git a/fpdfsdk/javascript/Document.cpp b/fpdfsdk/javascript/Document.cpp |
index 29f97648063381c2609b8c447336af2674bba997..7e4dc260f2b4e130f6a12a8345a209164cb02279 100644 |
--- a/fpdfsdk/javascript/Document.cpp |
+++ b/fpdfsdk/javascript/Document.cpp |
@@ -506,12 +506,16 @@ bool Document::removeField(IJS_Context* cc, |
CJS_Runtime* pRuntime = pContext->GetJSRuntime(); |
CFX_WideString sFieldName = params[0].ToCFXWideString(pRuntime); |
CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm(); |
- std::vector<CPDFSDK_Widget*> widgets; |
+ std::vector<CPDFSDK_Annot::ObservedPtr> widgets; |
pInterForm->GetWidgets(sFieldName, &widgets); |
if (widgets.empty()) |
return true; |
- for (CPDFSDK_Widget* pWidget : widgets) { |
+ for (const auto& pAnnot : widgets) { |
+ CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot.Get()); |
+ if (!pWidget) |
+ continue; |
+ |
CFX_FloatRect rcAnnot = pWidget->GetRect(); |
--rcAnnot.left; |
--rcAnnot.bottom; |