Merge to XFA: CFXJS_ObjDefinition's lifetime must match isolate.
Review URL: https://codereview.chromium.org/1468423004 .
(cherry picked from commit 628f7053cc646c58c61add247c75bc65ac135327)
BUG=561184
TBR=jochen@chromium.org
Review URL: https://codereview.chromium.org/1473943002 .
diff --git a/fpdfsdk/src/jsapi/fxjs_v8.cpp b/fpdfsdk/src/jsapi/fxjs_v8.cpp
index 9c2c538..9a3a268 100644
--- a/fpdfsdk/src/jsapi/fxjs_v8.cpp
+++ b/fpdfsdk/src/jsapi/fxjs_v8.cpp
@@ -356,12 +356,14 @@
pObjDef->m_pDestructor(pObj);
FXJS_FreePrivate(pObj);
}
- delete pObjDef;
}
if (pIsolate == g_isolate && --g_isolate_ref_count > 0)
return;
+ for (int i = 0; i < maxID; ++i)
+ delete CFXJS_ObjDefinition::ForID(pIsolate, i);
+
pIsolate->SetData(g_embedderDataSlot, nullptr);
delete pData;
}