diff options
Diffstat (limited to 'fxjs')
-rw-r--r-- | fxjs/cjs_document.h | 5 | ||||
-rw-r--r-- | fxjs/cjs_field.cpp | 4 | ||||
-rw-r--r-- | fxjs/cjs_field.h | 4 |
3 files changed, 6 insertions, 7 deletions
diff --git a/fxjs/cjs_document.h b/fxjs/cjs_document.h index 262d472cca..2af617f8ad 100644 --- a/fxjs/cjs_document.h +++ b/fxjs/cjs_document.h @@ -11,14 +11,13 @@ #include <memory> #include <vector> +#include "core/fxcrt/observable.h" #include "fxjs/js_define.h" -class CJS_Document; class CPDF_TextObject; - struct CJS_DelayData; -class CJS_Document : public CJS_Object { +class CJS_Document : public CJS_Object, public Observable<CJS_Document> { public: static int GetObjDefnID(); static void DefineJSObjects(CFXJS_Engine* pEngine); diff --git a/fxjs/cjs_field.cpp b/fxjs/cjs_field.cpp index 84835866ea..6f6455d984 100644 --- a/fxjs/cjs_field.cpp +++ b/fxjs/cjs_field.cpp @@ -205,7 +205,7 @@ void CJS_Field::ParseFieldName(const std::wstring& strFieldNameParsed, bool CJS_Field::AttachField(CJS_Document* pDocument, const WideString& csFieldName) { - m_pJSDoc = pDocument; + m_pJSDoc.Reset(pDocument); m_pFormFillEnv.Reset(pDocument->GetFormFillEnv()); m_bCanSet = m_pFormFillEnv->GetPermissions(FPDFPERM_FILL_FORM) || m_pFormFillEnv->GetPermissions(FPDFPERM_ANNOT_FORM) || @@ -2467,7 +2467,7 @@ CJS_Return CJS_Field::getArray( auto* pJSField = static_cast<CJS_Field*>(CFXJS_Engine::GetObjectPrivate(pObj)); - pJSField->AttachField(m_pJSDoc, *pStr); + pJSField->AttachField(m_pJSDoc.Get(), *pStr); pRuntime->PutArrayElement(FormFieldArray, j++, pJSField ? v8::Local<v8::Value>(pJSField->ToV8Object()) diff --git a/fxjs/cjs_field.h b/fxjs/cjs_field.h index 0f089d0f13..52ddbf70d1 100644 --- a/fxjs/cjs_field.h +++ b/fxjs/cjs_field.h @@ -10,11 +10,11 @@ #include <string> #include <vector> +#include "fxjs/cjs_document.h" #include "fxjs/js_define.h" class CPDF_FormControl; class CPDFSDK_Widget; -class CJS_Document; struct CJS_DelayData; enum FIELD_PROP { @@ -418,7 +418,7 @@ class CJS_Field : public CJS_Object { void DoDelay(); - CJS_Document* m_pJSDoc = nullptr; + CJS_Document::ObservedPtr m_pJSDoc; CPDFSDK_FormFillEnvironment::ObservedPtr m_pFormFillEnv; WideString m_FieldName; int m_nFormControlIndex = -1; |