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_field.cpp b/fxjs/cjs_field.cpp
index 1e9e389..b9bc8cb 100644
--- a/fxjs/cjs_field.cpp
+++ b/fxjs/cjs_field.cpp
@@ -171,18 +171,11 @@
DefineMethods(pEngine, ObjDefnID, MethodSpecs, FX_ArraySize(MethodSpecs));
}
-CJS_Field::CJS_Field(v8::Local<v8::Object> pObject)
- : CJS_Object(pObject),
- m_pJSDoc(nullptr),
- m_pFormFillEnv(nullptr),
- m_nFormControlIndex(-1),
- m_bCanSet(false),
- m_bDelay(false) {}
+CJS_Field::CJS_Field(v8::Local<v8::Object> pObject, CJS_Runtime* pRuntime)
+ : CJS_Object(pObject, pRuntime) {}
CJS_Field::~CJS_Field() = default;
-void CJS_Field::InitInstance(IJS_Runtime* pIRuntime) {}
-
// note: iControlNo = -1, means not a widget.
void CJS_Field::ParseFieldName(const std::wstring& strFieldNameParsed,
std::wstring& strFieldName,