Index: fpdfsdk/formfiller/cffl_checkbox.cpp |
diff --git a/fpdfsdk/formfiller/cffl_checkbox.cpp b/fpdfsdk/formfiller/cffl_checkbox.cpp |
index 01f1a2a08c063b4aedc97f5fd7382962f85aeb5a..334adb68eddd06ec456d91a278943d52d1ee4be6 100644 |
--- a/fpdfsdk/formfiller/cffl_checkbox.cpp |
+++ b/fpdfsdk/formfiller/cffl_checkbox.cpp |
@@ -47,15 +47,17 @@ FX_BOOL CFFL_CheckBox::OnChar(CPDFSDK_Annot* pAnnot, |
FX_BOOL bReset = FALSE; |
FX_BOOL bExit = FALSE; |
- m_pEnv->GetInteractiveFormFiller()->OnButtonUp(m_pWidget, pPageView, |
+ CPDFSDK_Annot::ObservedPtr pObserved(m_pWidget); |
+ m_pEnv->GetInteractiveFormFiller()->OnButtonUp(&pObserved, pPageView, |
bReset, bExit, nFlags); |
- if (bReset) |
+ if (!pObserved) { |
+ m_pWidget = nullptr; |
return TRUE; |
- if (bExit) |
+ } |
+ if (bReset || bExit) |
return TRUE; |
CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags); |
- |
if (CPWL_CheckBox* pWnd = (CPWL_CheckBox*)GetPDFWindow(pPageView, TRUE)) |
pWnd->SetCheck(!pWnd->IsChecked()); |