Make CJS_Objects track CJS_Runtime (and hence the document itself)
Precursor to removing some more v8::Context slot dependency.
There's a cost to maintaining the set of observers, but since these
objects are tied to V8 lifetimes, not C++ lifetimes, we want to be
very wary of the document going away unexpectedly.
Change-Id: I579f58a460aa50b88cb861227c9aca9a8a83ce12
Reviewed-on: https://pdfium-review.googlesource.com/33471
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
diff --git a/fxjs/cjs_global.cpp b/fxjs/cjs_global.cpp
index 282b262..2a91bdd 100644
--- a/fxjs/cjs_global.cpp
+++ b/fxjs/cjs_global.cpp
@@ -205,16 +205,16 @@
DefineAllProperties(pEngine);
}
-CJS_Global::CJS_Global(v8::Local<v8::Object> pObject)
- : CJS_Object(pObject), m_pFormFillEnv(nullptr) {}
+CJS_Global::CJS_Global(v8::Local<v8::Object> pObject, CJS_Runtime* pRuntime)
+ : CJS_Object(pObject, pRuntime) {}
CJS_Global::~CJS_Global() {
DestroyGlobalPersisitentVariables();
m_pGlobalData->Release();
}
-void CJS_Global::InitInstance(IJS_Runtime* pIRuntime) {
- Initial(pIRuntime->GetFormFillEnv());
+void CJS_Global::InitInstance() {
+ Initial(GetRuntime()->GetFormFillEnv());
}
void CJS_Global::Initial(CPDFSDK_FormFillEnvironment* pFormFillEnv) {