diff options
author | Oliver Chang <ochang@chromium.org> | 2015-10-30 12:59:29 -0700 |
---|---|---|
committer | Oliver Chang <ochang@chromium.org> | 2015-10-30 12:59:29 -0700 |
commit | 972b78dbde75ee8434f134da9d364bca926c4a8a (patch) | |
tree | 277d8acc5c4a01a03f881187dff099a86ea612a9 /fpdfsdk/include | |
parent | f71d1e2295bc3d229a20e480c9da9265d2623eff (diff) | |
download | pdfium-972b78dbde75ee8434f134da9d364bca926c4a8a.tar.xz |
Merge to XFA: 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.
TBR=tsepez@chromium.org
BUG=512445
Clean merge.
Review URL: https://codereview.chromium.org/1414353007 .
(cherry picked from commit a548b1d3e2444f256bcbf6c2fa2165798e33ba8d)
Review URL: https://codereview.chromium.org/1423343004 .
Diffstat (limited to 'fpdfsdk/include')
-rw-r--r-- | fpdfsdk/include/fsdk_mgr.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fpdfsdk/include/fsdk_mgr.h b/fpdfsdk/include/fsdk_mgr.h index d19c9233d7..97e5863f98 100644 --- a/fpdfsdk/include/fsdk_mgr.h +++ b/fpdfsdk/include/fsdk_mgr.h @@ -528,6 +528,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: @@ -548,6 +549,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); |