Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(776)

Unified Diff: fpdfsdk/cpdfsdk_formfillenvironment.cpp

Issue 2408163003: Fixup formfiller cleanup (Closed)
Patch Set: Comment cleanup Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: fpdfsdk/cpdfsdk_formfillenvironment.cpp
diff --git a/fpdfsdk/cpdfsdk_formfillenvironment.cpp b/fpdfsdk/cpdfsdk_formfillenvironment.cpp
index 5b05d0812867168ed3b9eed089c64adec1431696..7b41ea148c04413c53fdeb0825adcbd19501f407 100644
--- a/fpdfsdk/cpdfsdk_formfillenvironment.cpp
+++ b/fpdfsdk/cpdfsdk_formfillenvironment.cpp
@@ -39,6 +39,16 @@ CPDFSDK_FormFillEnvironment::CPDFSDK_FormFillEnvironment(
m_pSysHandler(new CFX_SystemHandler(this)) {}
CPDFSDK_FormFillEnvironment::~CPDFSDK_FormFillEnvironment() {
+ // |m_pAnnotHandlerMgr| will try to access |m_pFormFiller|
+ // when it cleans up. So, we must make sure it is cleaned up before
+ // |m_pFormFiller|.
+ m_pAnnotHandlerMgr.reset();
+
+ // Must destroy the |m_pFormFiller| before the environment (|this|)
+ // because any created form widgets hold a pointer to the environment.
+ // Those widgets may call things like KillTimer() as they are shutdown.
+ m_pFormFiller.reset();
+
#ifdef PDF_ENABLE_XFA
CPDFXFA_App* pProvider = CPDFXFA_App::GetInstance();
if (pProvider->m_pEnvList.GetSize() == 0)
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698