summaryrefslogtreecommitdiff
path: root/fpdfsdk/include
diff options
context:
space:
mode:
authorOliver Chang <ochang@chromium.org>2015-10-30 12:48:49 -0700
committerOliver Chang <ochang@chromium.org>2015-10-30 12:48:49 -0700
commita548b1d3e2444f256bcbf6c2fa2165798e33ba8d (patch)
treeacabce92e644f27adef15b1beaeb384d719f2b0a /fpdfsdk/include
parent23e20f2d3ce5b416e1c7f7f1c2d68c90ddf2d4ad (diff)
downloadpdfium-a548b1d3e2444f256bcbf6c2fa2165798e33ba8d.tar.xz
Rip out the KillFocusAnnot call from CPDFSDK_PageView's destructor
Previously, blur event actions could potentially touch deleted PageViews as CPDFSDK_Document deletes the PageViews one by one. This also fixes a related issue: CPDFSDK_Document::SetFocusAnnot no longer does anything if the document is being destroyed. Otherwise, it eventually tries to use m_pEnv->GetSDKDocument() at which point has already been set to NULL by FPDFDOC_ExitFormFillEnvironment. R=tsepez@chromium.org, thestig@chromium.org BUG=512445 Review URL: https://codereview.chromium.org/1414353007 .
Diffstat (limited to 'fpdfsdk/include')
-rw-r--r--fpdfsdk/include/fsdk_mgr.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/fpdfsdk/include/fsdk_mgr.h b/fpdfsdk/include/fsdk_mgr.h
index 2c063ed5a8..2cc528265d 100644
--- a/fpdfsdk/include/fsdk_mgr.h
+++ b/fpdfsdk/include/fsdk_mgr.h
@@ -283,6 +283,7 @@ class CPDFSDK_Document {
CPDFDoc_Environment* m_pEnv;
CPDF_OCContext* m_pOccontent;
FX_BOOL m_bChangeMask;
+ FX_BOOL m_bBeingDestroyed;
};
class CPDFSDK_PageView final {
public:
@@ -302,6 +303,7 @@ class CPDFSDK_PageView final {
FX_BOOL KillFocusAnnot(FX_UINT nFlag = 0) {
return m_pSDKDoc->KillFocusAnnot(nFlag);
}
+ void KillFocusAnnotIfNeeded();
FX_BOOL Annot_HasAppearance(CPDF_Annot* pAnnot);
CPDFSDK_Annot* AddAnnot(CPDF_Dictionary* pDict);