summaryrefslogtreecommitdiff
path: root/fpdfsdk/javascript
diff options
context:
space:
mode:
authorthestig <thestig@chromium.org>2016-06-28 07:39:09 -0700
committerCommit bot <commit-bot@chromium.org>2016-06-28 07:39:09 -0700
commit2d6dda170d84564f6ca5845ea934a886ac9bf746 (patch)
treef4d16014099db0e232799cc336439b5bd5f583f5 /fpdfsdk/javascript
parentb21c6d0083e18077aa09b8cb1e4bb867dab2949e (diff)
downloadpdfium-2d6dda170d84564f6ca5845ea934a886ac9bf746.tar.xz
Implement IJS_Runtime::Destroy().
And call it from FPDF_DestroyLibrary(). Otherwise further attempts to FPDF_InitLibraryWithConfig() can hit fail an assertion in IJS_Runtime::Initialize(). BUG=604587 Review-Url: https://codereview.chromium.org/2103443004
Diffstat (limited to 'fpdfsdk/javascript')
-rw-r--r--fpdfsdk/javascript/JS_Runtime_Stub.cpp3
-rw-r--r--fpdfsdk/javascript/cjs_runtime.cpp5
-rw-r--r--fpdfsdk/javascript/ijs_runtime.h1
3 files changed, 9 insertions, 0 deletions
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() {}