From 36aae4fc09a353e01738bf0bbc302a21ba21ed07 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Mon, 4 Jun 2018 19:44:37 +0000 Subject: 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 Reviewed-by: dsinclair --- fxjs/cjs_field.h | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'fxjs/cjs_field.h') diff --git a/fxjs/cjs_field.h b/fxjs/cjs_field.h index 51cc530efa..ba476139cf 100644 --- a/fxjs/cjs_field.h +++ b/fxjs/cjs_field.h @@ -34,12 +34,9 @@ class CJS_Field : public CJS_Object { static void DoDelay(CPDFSDK_FormFillEnvironment* pFormFillEnv, CJS_DelayData* pData); - explicit CJS_Field(v8::Local pObject); + CJS_Field(v8::Local pObject, CJS_Runtime* pRuntime); ~CJS_Field() override; - // CJS_Object - void InitInstance(IJS_Runtime* pIRuntime) override; - bool AttachField(CJS_Document* pDocument, const WideString& csFieldName); JS_STATIC_PROP(alignment, alignment, CJS_Field); @@ -421,12 +418,12 @@ class CJS_Field : public CJS_Object { void DoDelay(); - CJS_Document* m_pJSDoc; + CJS_Document* m_pJSDoc = nullptr; CPDFSDK_FormFillEnvironment::ObservedPtr m_pFormFillEnv; WideString m_FieldName; - int m_nFormControlIndex; - bool m_bCanSet; - bool m_bDelay; + int m_nFormControlIndex = -1; + bool m_bCanSet = false; + bool m_bDelay = false; }; #endif // FXJS_CJS_FIELD_H_ -- cgit v1.2.3