diff options
Diffstat (limited to 'fpdfsdk')
-rw-r--r-- | fpdfsdk/fpdfview.cpp | 2 | ||||
-rw-r--r-- | fpdfsdk/javascript/JS_Runtime_Stub.cpp | 3 | ||||
-rw-r--r-- | fpdfsdk/javascript/cjs_runtime.cpp | 5 | ||||
-rw-r--r-- | fpdfsdk/javascript/ijs_runtime.h | 1 |
4 files changed, 11 insertions, 0 deletions
diff --git a/fpdfsdk/fpdfview.cpp b/fpdfsdk/fpdfview.cpp index 38d704d27e..646fb46f72 100644 --- a/fpdfsdk/fpdfview.cpp +++ b/fpdfsdk/fpdfview.cpp @@ -291,6 +291,8 @@ DLLEXPORT void STDCALL FPDF_DestroyLibrary() { delete g_pCodecModule; g_pCodecModule = nullptr; + + IJS_Runtime::Destroy(); } #ifndef _WIN32 diff --git a/fpdfsdk/javascript/JS_Runtime_Stub.cpp b/fpdfsdk/javascript/JS_Runtime_Stub.cpp index 4930900337..39c191af70 100644 --- a/fpdfsdk/javascript/JS_Runtime_Stub.cpp +++ b/fpdfsdk/javascript/JS_Runtime_Stub.cpp @@ -161,6 +161,9 @@ class CJS_RuntimeStub final : public IJS_Runtime { void IJS_Runtime::Initialize(unsigned int slot, void* isolate) {} // static +void IJS_Runtime::Destroy() {} + +// static IJS_Runtime* IJS_Runtime::Create(CPDFDoc_Environment* pEnv) { return new CJS_RuntimeStub; } diff --git a/fpdfsdk/javascript/cjs_runtime.cpp b/fpdfsdk/javascript/cjs_runtime.cpp index 2bcdc2293b..88530f7332 100644 --- a/fpdfsdk/javascript/cjs_runtime.cpp +++ b/fpdfsdk/javascript/cjs_runtime.cpp @@ -40,6 +40,11 @@ void IJS_Runtime::Initialize(unsigned int slot, void* isolate) { } // static +void IJS_Runtime::Destroy() { + FXJS_Release(); +} + +// static IJS_Runtime* IJS_Runtime::Create(CPDFDoc_Environment* pEnv) { return new CJS_Runtime(pEnv); } diff --git a/fpdfsdk/javascript/ijs_runtime.h b/fpdfsdk/javascript/ijs_runtime.h index 4083f86e87..b24a2dd916 100644 --- a/fpdfsdk/javascript/ijs_runtime.h +++ b/fpdfsdk/javascript/ijs_runtime.h @@ -22,6 +22,7 @@ class IJS_Context; class IJS_Runtime { public: static void Initialize(unsigned int slot, void* isolate); + static void Destroy(); static IJS_Runtime* Create(CPDFDoc_Environment* pEnv); virtual ~IJS_Runtime() {} |