Remove CFXJSE_ResolveProcessor::SetEngine() Pass it into constructor and make member const. Change-Id: I814f8f0c8fea9411652f754e51b95135e74356c4 Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/96110 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fxjs/xfa/cfxjse_engine.cpp b/fxjs/xfa/cfxjse_engine.cpp index 1e190fc..6142beb 100644 --- a/fxjs/xfa/cfxjse_engine.cpp +++ b/fxjs/xfa/cfxjse_engine.cpp
@@ -119,10 +119,8 @@ return pJSObject ? pJSObject->GetXFAObject() : nullptr; } -CFXJSE_Engine::CFXJSE_Engine( - CXFA_Document* pDocument, - CJS_Runtime* fxjs_runtime, - std::unique_ptr<CFXJSE_ResolveProcessor> pProcessor) +CFXJSE_Engine::CFXJSE_Engine(CXFA_Document* pDocument, + CJS_Runtime* fxjs_runtime) : CFX_V8(fxjs_runtime->GetIsolate()), m_pSubordinateRuntime(fxjs_runtime), m_pDocument(pDocument), @@ -130,8 +128,7 @@ &kGlobalClassDescriptor, pDocument->GetRoot()->JSObject(), nullptr)), - m_ResolveProcessor(std::move(pProcessor)) { - m_ResolveProcessor->SetEngine(this); + m_ResolveProcessor(std::make_unique<CFXJSE_ResolveProcessor>(this)) { RemoveBuiltInObjs(m_JsContext.get()); m_JsContext->EnableCompatibleMode();
diff --git a/fxjs/xfa/cfxjse_engine.h b/fxjs/xfa/cfxjse_engine.h index 8fbc599..ce8108e 100644 --- a/fxjs/xfa/cfxjse_engine.h +++ b/fxjs/xfa/cfxjse_engine.h
@@ -106,9 +106,7 @@ ByteStringView szPropName, bool bQueryIn); - CFXJSE_Engine(CXFA_Document* pDocument, - CJS_Runtime* fxjs_runtime, - std::unique_ptr<CFXJSE_ResolveProcessor> pProcessor); + CFXJSE_Engine(CXFA_Document* pDocument, CJS_Runtime* fxjs_runtime); ~CFXJSE_Engine() override; void SetEventParam(CXFA_EventParam* param) { m_eventParam = param; }
diff --git a/fxjs/xfa/cfxjse_resolveprocessor.cpp b/fxjs/xfa/cfxjse_resolveprocessor.cpp index a945b97..20dc040 100644 --- a/fxjs/xfa/cfxjse_resolveprocessor.cpp +++ b/fxjs/xfa/cfxjse_resolveprocessor.cpp
@@ -25,16 +25,12 @@ #include "xfa/fxfa/parser/cxfa_occur.h" #include "xfa/fxfa/parser/xfa_utils.h" -CFXJSE_ResolveProcessor::CFXJSE_ResolveProcessor() - : m_pNodeHelper(std::make_unique<CFXJSE_NodeHelper>()) {} +CFXJSE_ResolveProcessor::CFXJSE_ResolveProcessor(CFXJSE_Engine* pEngine) + : m_pEngine(pEngine), + m_pNodeHelper(std::make_unique<CFXJSE_NodeHelper>()) {} CFXJSE_ResolveProcessor::~CFXJSE_ResolveProcessor() = default; -void CFXJSE_ResolveProcessor::SetEngine(CFXJSE_Engine* pEngine) { - DCHECK(!m_pEngine); - m_pEngine = pEngine; -} - bool CFXJSE_ResolveProcessor::Resolve(v8::Isolate* pIsolate, NodeData& rnd) { if (!rnd.m_CurObject) return false;
diff --git a/fxjs/xfa/cfxjse_resolveprocessor.h b/fxjs/xfa/cfxjse_resolveprocessor.h index d8b076b..3ab63de 100644 --- a/fxjs/xfa/cfxjse_resolveprocessor.h +++ b/fxjs/xfa/cfxjse_resolveprocessor.h
@@ -36,10 +36,9 @@ CFXJSE_Engine::ResolveResult m_Result; }; - CFXJSE_ResolveProcessor(); + explicit CFXJSE_ResolveProcessor(CFXJSE_Engine* pEngine); ~CFXJSE_ResolveProcessor(); - void SetEngine(CFXJSE_Engine* pEngine); bool Resolve(v8::Isolate* pIsolate, NodeData& rnd); int32_t GetFilter(WideStringView wsExpression, int32_t nStart, NodeData& rnd); int32_t IndexForDataBind(const WideString& wsNextCondition, int32_t iCount); @@ -72,7 +71,7 @@ NodeData* pRnd); int32_t m_iCurStart = 0; - UnownedPtr<CFXJSE_Engine> m_pEngine; + UnownedPtr<CFXJSE_Engine> const m_pEngine; std::unique_ptr<CFXJSE_NodeHelper> const m_pNodeHelper; };
diff --git a/xfa/fxfa/parser/cxfa_document.cpp b/xfa/fxfa/parser/cxfa_document.cpp index f4485fe..119cb08 100644 --- a/xfa/fxfa/parser/cxfa_document.cpp +++ b/xfa/fxfa/parser/cxfa_document.cpp
@@ -1456,8 +1456,7 @@ CFXJSE_Engine* CXFA_Document::InitScriptContext(CJS_Runtime* fxjs_runtime) { DCHECK(!m_pScriptContext); - m_pScriptContext = std::make_unique<CFXJSE_Engine>( - this, fxjs_runtime, std::make_unique<CFXJSE_ResolveProcessor>()); + m_pScriptContext = std::make_unique<CFXJSE_Engine>(this, fxjs_runtime); return m_pScriptContext.get(); }