From d5f726188761cd00cb3d16921093a859bda39a71 Mon Sep 17 00:00:00 2001 From: tsepez Date: Wed, 1 Jun 2016 14:01:31 -0700 Subject: Track shared isolates better in FXJSE. Fix the asymmetry between creating only some isolates and releasing all of them, even the shared ones, by being more careful not to trash those we didn't create. Review-Url: https://codereview.chromium.org/2025193002 --- fpdfsdk/fpdfxfa/fpdfxfa_app.cpp | 13 ++++--------- fpdfsdk/fpdfxfa/include/fpdfxfa_app.h | 1 - 2 files changed, 4 insertions(+), 10 deletions(-) (limited to 'fpdfsdk/fpdfxfa') diff --git a/fpdfsdk/fpdfxfa/fpdfxfa_app.cpp b/fpdfsdk/fpdfxfa/fpdfxfa_app.cpp index f7a6a3ba00..56dfd47b29 100644 --- a/fpdfsdk/fpdfxfa/fpdfxfa_app.cpp +++ b/fpdfsdk/fpdfxfa/fpdfxfa_app.cpp @@ -32,8 +32,7 @@ CPDFXFA_App::CPDFXFA_App() : m_bJavaScriptInitialized(FALSE), m_pXFAApp(NULL), m_pIsolate(nullptr), - m_csAppType(JS_STR_VIEWERTYPE_STANDARD), - m_bOwnedRuntime(false) { + m_csAppType(JS_STR_VIEWERTYPE_STANDARD) { m_pEnvList.RemoveAll(); } @@ -41,29 +40,25 @@ CPDFXFA_App::~CPDFXFA_App() { delete m_pXFAApp; m_pXFAApp = NULL; -#ifdef PDF_ENABLE_XFA - FXJSE_Runtime_Release(m_pIsolate, m_bOwnedRuntime); + FXJSE_Runtime_Release(m_pIsolate); m_pIsolate = nullptr; FXJSE_Finalize(); BC_Library_Destory(); -#endif } FX_BOOL CPDFXFA_App::Initialize(v8::Isolate* pIsolate) { -#ifdef PDF_ENABLE_XFA BC_Library_Init(); FXJSE_Initialize(); - m_bOwnedRuntime = !pIsolate; - m_pIsolate = pIsolate ? pIsolate : FXJSE_Runtime_Create(); + m_pIsolate = pIsolate ? pIsolate : FXJSE_Runtime_Create_Own(); if (!m_pIsolate) return FALSE; m_pXFAApp = new CXFA_FFApp(this); m_pXFAApp->SetDefaultFontMgr( std::unique_ptr(new CXFA_DefFontMgr)); -#endif + return TRUE; } diff --git a/fpdfsdk/fpdfxfa/include/fpdfxfa_app.h b/fpdfsdk/fpdfxfa/include/fpdfxfa_app.h index b561245dcd..f24c700434 100644 --- a/fpdfsdk/fpdfxfa/include/fpdfxfa_app.h +++ b/fpdfsdk/fpdfxfa/include/fpdfxfa_app.h @@ -87,7 +87,6 @@ class CPDFXFA_App : public IXFA_AppProvider { v8::Isolate* m_pIsolate; IFXJS_Runtime* m_pJSRuntime; CFX_WideString m_csAppType; - bool m_bOwnedRuntime; }; #endif // FPDFSDK_FPDFXFA_INCLUDE_FPDFXFA_APP_H_ -- cgit v1.2.3