summaryrefslogtreecommitdiff
path: root/xfa/src
diff options
context:
space:
mode:
authorjinming_wang <jinming_wang@foxitsoftware.com>2016-02-04 09:41:56 +0800
committerjinming_wang <jinming_wang@foxitsoftware.com>2016-02-04 09:41:56 +0800
commit486615821300724aef55035f4f831f548fb9cab6 (patch)
treeb5ccf7e0f7425a9039b6ea349a996396bad1cbf5 /xfa/src
parent99ddbfbcc3d0e8a52c8f8a4ec22462d9e00c1c6a (diff)
downloadpdfium-486615821300724aef55035f4f831f548fb9cab6.tar.xz
Pdfium does not create isolate when it runs in chromium
BUG=pdfium:373 R=jochen@chromium.org Review URL: https://codereview.chromium.org/1652873003 .
Diffstat (limited to 'xfa/src')
-rw-r--r--xfa/src/fxjse/src/runtime.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/xfa/src/fxjse/src/runtime.cpp b/xfa/src/fxjse/src/runtime.cpp
index 5609c35b63..72e221226d 100644
--- a/xfa/src/fxjse/src/runtime.cpp
+++ b/xfa/src/fxjse/src/runtime.cpp
@@ -58,12 +58,19 @@ FXJSE_HRUNTIME FXJSE_Runtime_Create() {
CFXJSE_RuntimeData::g_RuntimeList->AppendRuntime(pIsolate);
return reinterpret_cast<FXJSE_HRUNTIME>(pIsolate);
}
-void FXJSE_Runtime_Release(FXJSE_HRUNTIME hRuntime) {
+void FXJSE_Runtime_Release(FXJSE_HRUNTIME hRuntime, bool bOwnedRuntime) {
v8::Isolate* pIsolate = reinterpret_cast<v8::Isolate*>(hRuntime);
- if (pIsolate) {
+ if (!pIsolate)
+ return;
+ if (bOwnedRuntime) {
ASSERT(CFXJSE_RuntimeData::g_RuntimeList);
CFXJSE_RuntimeData::g_RuntimeList->RemoveRuntime(
pIsolate, FXJSE_Runtime_DisposeCallback);
+ } else {
+ if (FXJS_PerIsolateData* pData = FXJS_PerIsolateData::Get(pIsolate)) {
+ delete pData->m_pFXJSERuntimeData;
+ pData->m_pFXJSERuntimeData = nullptr;
+ }
}
}
CFXJSE_RuntimeData* CFXJSE_RuntimeData::Create(v8::Isolate* pIsolate) {