From 3645652fb6cad1f94c9647f033a8e300bc37d521 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Thu, 8 Feb 2018 21:01:01 +0000 Subject: Move XFA-specific methods out of CJS_V8. These belong more properly in CFXJS_Engine, and a small amount of casting is required to get to the sub-class. Change-Id: Id954d182b7a7d51fe0a522c04a50a1b362746c72 Reviewed-on: https://pdfium-review.googlesource.com/26050 Reviewed-by: dsinclair Commit-Queue: Tom Sepez --- fxjs/xfa/cjx_container.cpp | 2 +- fxjs/xfa/cjx_form.cpp | 3 ++- fxjs/xfa/cjx_hostpseudomodel.cpp | 6 ++++-- fxjs/xfa/cjx_layoutpseudomodel.cpp | 11 +++++++---- fxjs/xfa/cjx_list.cpp | 14 +++++++++----- 5 files changed, 23 insertions(+), 13 deletions(-) (limited to 'fxjs/xfa') diff --git a/fxjs/xfa/cjx_container.cpp b/fxjs/xfa/cjx_container.cpp index cf0aca0cbb..b7577da204 100644 --- a/fxjs/xfa/cjx_container.cpp +++ b/fxjs/xfa/cjx_container.cpp @@ -34,7 +34,7 @@ CJS_Return CJX_Container::getDeltas( CJS_V8* runtime, const std::vector>& params) { CXFA_ArrayNodeList* pFormNodes = new CXFA_ArrayNodeList(GetDocument()); - return CJS_Return(runtime->NewXFAObject( + return CJS_Return(static_cast(runtime)->NewXFAObject( pFormNodes, GetDocument()->GetScriptContext()->GetJseNormalClass()->GetTemplate())); } diff --git a/fxjs/xfa/cjx_form.cpp b/fxjs/xfa/cjx_form.cpp index 6576df88d2..32de9f5902 100644 --- a/fxjs/xfa/cjx_form.cpp +++ b/fxjs/xfa/cjx_form.cpp @@ -37,7 +37,8 @@ CJS_Return CJX_Form::formNodes( if (params.size() != 1) return CJS_Return(JSGetStringFromID(JSMessage::kParamError)); - CXFA_Node* pDataNode = ToNode(runtime->ToXFAObject(params[0])); + CXFA_Node* pDataNode = + ToNode(static_cast(runtime)->ToXFAObject(params[0])); if (!pDataNode) return CJS_Return(JSGetStringFromID(JSMessage::kValueError)); diff --git a/fxjs/xfa/cjx_hostpseudomodel.cpp b/fxjs/xfa/cjx_hostpseudomodel.cpp index 319761d19a..fd570990bc 100644 --- a/fxjs/xfa/cjx_hostpseudomodel.cpp +++ b/fxjs/xfa/cjx_hostpseudomodel.cpp @@ -279,7 +279,8 @@ CJS_Return CJX_HostPseudoModel::openList( CXFA_Node* pNode = nullptr; if (params[0]->IsObject()) { - pNode = ToNode(runtime->ToXFAObject(params[0])); + pNode = + ToNode(static_cast(runtime)->ToXFAObject(params[0])); } else if (params[0]->IsString()) { CFXJSE_Engine* pScriptContext = GetDocument()->GetScriptContext(); if (!pScriptContext) @@ -439,7 +440,8 @@ CJS_Return CJX_HostPseudoModel::setFocus( CXFA_Node* pNode = nullptr; if (params.size() >= 1) { if (params[0]->IsObject()) { - pNode = ToNode(runtime->ToXFAObject(params[0])); + pNode = + ToNode(static_cast(runtime)->ToXFAObject(params[0])); } else if (params[0]->IsString()) { CFXJSE_Engine* pScriptContext = GetDocument()->GetScriptContext(); if (!pScriptContext) diff --git a/fxjs/xfa/cjx_layoutpseudomodel.cpp b/fxjs/xfa/cjx_layoutpseudomodel.cpp index 384bd09d63..ba17ed8b8b 100644 --- a/fxjs/xfa/cjx_layoutpseudomodel.cpp +++ b/fxjs/xfa/cjx_layoutpseudomodel.cpp @@ -75,7 +75,8 @@ CJS_Return CJX_LayoutPseudoModel::HWXY( if (params.empty() || params.size() > 3) return CJS_Return(JSGetStringFromID(JSMessage::kParamError)); - CXFA_Node* pNode = ToNode(runtime->ToXFAObject(params[0])); + CXFA_Node* pNode = + ToNode(static_cast(runtime)->ToXFAObject(params[0])); if (!pNode) return CJS_Return(true); @@ -185,7 +186,8 @@ CJS_Return CJX_LayoutPseudoModel::pageSpan( if (params.size() != 1) return CJS_Return(JSGetStringFromID(JSMessage::kParamError)); - CXFA_Node* pNode = ToNode(runtime->ToXFAObject(params[0])); + CXFA_Node* pNode = + ToNode(static_cast(runtime)->ToXFAObject(params[0])); if (!pNode) return CJS_Return(true); @@ -374,7 +376,7 @@ CJS_Return CJX_LayoutPseudoModel::pageContent( GetObjArray(pDocLayout, iIndex, wsType, bOnPageArea)); // TODO(dsinclair): Who owns the array once we release it? Won't this leak? - return CJS_Return(runtime->NewXFAObject( + return CJS_Return(static_cast(runtime)->NewXFAObject( pArrayNodeList.release(), GetDocument()->GetScriptContext()->GetJseNormalClass()->GetTemplate())); } @@ -465,7 +467,8 @@ CJS_Return CJX_LayoutPseudoModel::PageInternals( if (params.size() != 1) return CJS_Return(JSGetStringFromID(JSMessage::kParamError)); - CXFA_Node* pNode = ToNode(runtime->ToXFAObject(params[0])); + CXFA_Node* pNode = + ToNode(static_cast(runtime)->ToXFAObject(params[0])); if (!pNode) return CJS_Return(runtime->NewNumber(0)); diff --git a/fxjs/xfa/cjx_list.cpp b/fxjs/xfa/cjx_list.cpp index 9cbd32d352..27a4315d5f 100644 --- a/fxjs/xfa/cjx_list.cpp +++ b/fxjs/xfa/cjx_list.cpp @@ -36,7 +36,8 @@ CJS_Return CJX_List::append(CJS_V8* runtime, if (params.size() != 1) return CJS_Return(JSGetStringFromID(JSMessage::kParamError)); - auto* pNode = ToNode(runtime->ToXFAObject(params[0])); + auto* pNode = + ToNode(static_cast(runtime)->ToXFAObject(params[0])); if (!pNode) return CJS_Return(JSGetStringFromID(JSMessage::kValueError)); @@ -49,11 +50,13 @@ CJS_Return CJX_List::insert(CJS_V8* runtime, if (params.size() != 2) return CJS_Return(JSGetStringFromID(JSMessage::kParamError)); - auto* pNewNode = ToNode(runtime->ToXFAObject(params[0])); + auto* pNewNode = + ToNode(static_cast(runtime)->ToXFAObject(params[0])); if (!pNewNode) return CJS_Return(JSGetStringFromID(JSMessage::kValueError)); - auto* pBeforeNode = ToNode(runtime->ToXFAObject(params[1])); + auto* pBeforeNode = + ToNode(static_cast(runtime)->ToXFAObject(params[1])); GetXFAList()->Insert(pNewNode, pBeforeNode); return CJS_Return(true); } @@ -63,7 +66,8 @@ CJS_Return CJX_List::remove(CJS_V8* runtime, if (params.size() != 1) return CJS_Return(JSGetStringFromID(JSMessage::kParamError)); - auto* pNode = ToNode(runtime->ToXFAObject(params[0])); + auto* pNode = + ToNode(static_cast(runtime)->ToXFAObject(params[0])); if (!pNode) return CJS_Return(JSGetStringFromID(JSMessage::kValueError)); @@ -81,7 +85,7 @@ CJS_Return CJX_List::item(CJS_V8* runtime, if (index < 0 || cast_index >= GetXFAList()->GetLength()) return CJS_Return(JSGetStringFromID(JSMessage::kInvalidInputError)); - return CJS_Return(runtime->NewXFAObject( + return CJS_Return(static_cast(runtime)->NewXFAObject( GetXFAList()->Item(cast_index), GetDocument()->GetScriptContext()->GetJseNormalClass()->GetTemplate())); } -- cgit v1.2.3