| Index: xfa/src/fxjse/src/runtime.cpp
|
| diff --git a/xfa/src/fxjse/src/runtime.cpp b/xfa/src/fxjse/src/runtime.cpp
|
| index 5609c35b6364fe30a3001061c679f47aaecc2d83..72e221226d77cd6500717fdfc115555139bcd89f 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) {
|
|
|