From 18a6069f5ce332b2bab97bf3a6d8ea9528d69791 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Wed, 10 Jan 2018 16:30:56 +0000 Subject: Remove CXFA_Node::GetNodeItem This CL removes the generic CXFA_Node::GetNodeItem(type) method for specific calls to get the parent, child or siblings. Change-Id: Ief68284ac7b954aaa4ed7120dd82a39f8b52656a Reviewed-on: https://pdfium-review.googlesource.com/22650 Reviewed-by: Ryan Harrison Commit-Queue: dsinclair --- fxjs/cfxjse_engine.cpp | 8 +- fxjs/cfxjse_resolveprocessor.cpp | 10 +- fxjs/xfa/cjx_field.cpp | 3 +- fxjs/xfa/cjx_instancemanager.cpp | 3 +- fxjs/xfa/cjx_layoutpseudomodel.cpp | 2 +- fxjs/xfa/cjx_node.cpp | 14 +- fxjs/xfa/cjx_object.cpp | 122 ++++++-------- fxjs/xfa/cjx_tree.cpp | 2 +- xfa/fxfa/cxfa_ffdoc.cpp | 7 +- xfa/fxfa/cxfa_ffdocview.cpp | 2 +- xfa/fxfa/cxfa_ffnotify.cpp | 4 +- xfa/fxfa/cxfa_ffwidget.cpp | 4 +- xfa/fxfa/cxfa_ffwidgethandler.cpp | 4 +- xfa/fxfa/cxfa_textprovider.cpp | 10 +- xfa/fxfa/cxfa_widgetacc.cpp | 119 +++++++------- xfa/fxfa/parser/cxfa_attachnodelist.cpp | 4 +- xfa/fxfa/parser/cxfa_dataexporter.cpp | 13 +- xfa/fxfa/parser/cxfa_dataimporter.cpp | 3 +- xfa/fxfa/parser/cxfa_document.cpp | 18 +- xfa/fxfa/parser/cxfa_event.cpp | 4 +- xfa/fxfa/parser/cxfa_fill.cpp | 4 +- xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp | 72 ++++---- xfa/fxfa/parser/cxfa_layoutpagemgr.cpp | 103 +++++------- xfa/fxfa/parser/cxfa_localemgr.cpp | 4 +- xfa/fxfa/parser/cxfa_node.cpp | 208 +++++++++++------------- xfa/fxfa/parser/cxfa_node.h | 7 +- xfa/fxfa/parser/cxfa_nodehelper.cpp | 2 +- xfa/fxfa/parser/cxfa_nodelocale.cpp | 5 +- xfa/fxfa/parser/cxfa_traversestrategy_xfanode.h | 6 +- xfa/fxfa/parser/cxfa_validate.cpp | 10 +- xfa/fxfa/parser/cxfa_value.cpp | 16 +- xfa/fxfa/parser/xfa_document_datamerger_imp.cpp | 135 +++++++-------- xfa/fxfa/parser/xfa_utils.cpp | 42 +++-- 33 files changed, 429 insertions(+), 541 deletions(-) diff --git a/fxjs/cfxjse_engine.cpp b/fxjs/cfxjse_engine.cpp index 535ec41160..325895f566 100644 --- a/fxjs/cfxjse_engine.cpp +++ b/fxjs/cfxjse_engine.cpp @@ -454,7 +454,7 @@ bool CFXJSE_Engine::RunVariablesScript(CXFA_Node* pScriptNode) { if (pScriptNode->GetElementType() != XFA_Element::Script) return true; - CXFA_Node* pParent = pScriptNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParent = pScriptNode->GetParent(); if (!pParent || pParent->GetElementType() != XFA_Element::Variables) return false; @@ -462,7 +462,7 @@ bool CFXJSE_Engine::RunVariablesScript(CXFA_Node* pScriptNode) { if (it != m_mapVariableToContext.end() && it->second) return true; - CXFA_Node* pTextNode = pScriptNode->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pTextNode = pScriptNode->GetFirstChild(); if (!pTextNode) return false; @@ -473,7 +473,7 @@ bool CFXJSE_Engine::RunVariablesScript(CXFA_Node* pScriptNode) { ByteString btScript = wsScript->UTF8Encode(); auto hRetValue = pdfium::MakeUnique(GetIsolate()); - CXFA_Node* pThisObject = pParent->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pThisObject = pParent->GetParent(); CFXJSE_Context* pVariablesContext = CreateVariablesContext(pScriptNode, pThisObject); AutoRestorer nodeRestorer(&m_pThisObject); @@ -488,7 +488,7 @@ bool CFXJSE_Engine::QueryVariableValue(CXFA_Node* pScriptNode, if (!pScriptNode || pScriptNode->GetElementType() != XFA_Element::Script) return false; - CXFA_Node* variablesNode = pScriptNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* variablesNode = pScriptNode->GetParent(); if (!variablesNode || variablesNode->GetElementType() != XFA_Element::Variables) return false; diff --git a/fxjs/cfxjse_resolveprocessor.cpp b/fxjs/cfxjse_resolveprocessor.cpp index b602db24ec..58fd3cd8eb 100644 --- a/fxjs/cfxjse_resolveprocessor.cpp +++ b/fxjs/cfxjse_resolveprocessor.cpp @@ -233,8 +233,8 @@ bool CFXJSE_ResolveProcessor::ResolveNormal(CFXJSE_ResolveNodeData& rnd) { std::vector properties; CXFA_Node* pVariablesNode = nullptr; CXFA_Node* pPageSetNode = nullptr; - for (CXFA_Node* pChild = curNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pChild; pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pChild = curNode->GetFirstChild(); pChild; + pChild = pChild->GetNextSibling()) { if (pChild->GetElementType() == XFA_Element::Variables) { pVariablesNode = pChild; continue; @@ -378,7 +378,7 @@ bool CFXJSE_ResolveProcessor::ResolveNormal(CFXJSE_ResolveNodeData& rnd) { } if (dwStyles & XFA_RESOLVENODE_Siblings) { - CXFA_Node* child = parentNode->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* child = parentNode->GetFirstChild(); uint32_t dwSubStyles = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Properties; if (dwStyles & XFA_RESOLVENODE_TagName) @@ -402,7 +402,7 @@ bool CFXJSE_ResolveProcessor::ResolveNormal(CFXJSE_ResolveNodeData& rnd) { } } } - child = child->GetNodeItem(XFA_NODEITEM_NextSibling); + child = child->GetNextSibling(); continue; } @@ -437,7 +437,7 @@ bool CFXJSE_ResolveProcessor::ResolveNormal(CFXJSE_ResolveNodeData& rnd) { rndFind.m_Objects.end()); rndFind.m_Objects.clear(); } - child = child->GetNodeItem(XFA_NODEITEM_NextSibling); + child = child->GetNextSibling(); } if (rnd.m_Objects.size() > nNum) { if (m_pNodeHelper->NodeIsTransparent(parentNode)) { diff --git a/fxjs/xfa/cjx_field.cpp b/fxjs/xfa/cjx_field.cpp index b04d8de26a..0007bad592 100644 --- a/fxjs/xfa/cjx_field.cpp +++ b/fxjs/xfa/cjx_field.cpp @@ -272,8 +272,7 @@ void CJX_Field::defaultValue(CFXJSE_Value* pValue, } CXFA_Node* pUIChild = pWidgetAcc->GetUIChild(); - CXFA_Node* pNode = - xfaNode->GetFormValue()->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pNode = xfaNode->GetFormValue()->GetFirstChild(); if (pNode && pNode->GetElementType() == XFA_Element::Decimal) { if (pUIChild->GetElementType() == XFA_Element::NumericEdit && (pNode->JSObject()->GetInteger(XFA_Attribute::FracDigits) == -1)) { diff --git a/fxjs/xfa/cjx_instancemanager.cpp b/fxjs/xfa/cjx_instancemanager.cpp index 4bb09dfd9f..f6aef37c16 100644 --- a/fxjs/xfa/cjx_instancemanager.cpp +++ b/fxjs/xfa/cjx_instancemanager.cpp @@ -60,8 +60,7 @@ int32_t CJX_InstanceManager::SetInstances(int32_t iDesired) { CXFA_Node* pPrevSibling = iDesired == 0 ? GetXFANode() : GetXFANode()->GetItem(iDesired - 1); while (iCount > iDesired) { - CXFA_Node* pRemoveInstance = - pPrevSibling->GetNodeItem(XFA_NODEITEM_NextSibling); + CXFA_Node* pRemoveInstance = pPrevSibling->GetNextSibling(); if (pRemoveInstance->GetElementType() != XFA_Element::Subform && pRemoveInstance->GetElementType() != XFA_Element::SubformSet) { continue; diff --git a/fxjs/xfa/cjx_layoutpseudomodel.cpp b/fxjs/xfa/cjx_layoutpseudomodel.cpp index c275970744..384bd09d63 100644 --- a/fxjs/xfa/cjx_layoutpseudomodel.cpp +++ b/fxjs/xfa/cjx_layoutpseudomodel.cpp @@ -403,7 +403,7 @@ CJS_Return CJX_LayoutPseudoModel::relayout( CXFA_Node* pRootNode = GetDocument()->GetRoot(); CXFA_Form* pFormRoot = pRootNode->GetFirstChildByClass(XFA_Element::Form); - CXFA_Node* pContentRootNode = pFormRoot->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pContentRootNode = pFormRoot->GetFirstChild(); CXFA_LayoutProcessor* pLayoutProcessor = GetDocument()->GetLayoutProcessor(); if (pContentRootNode) pLayoutProcessor->AddChangedContainer(pContentRootNode); diff --git a/fxjs/xfa/cjx_node.cpp b/fxjs/xfa/cjx_node.cpp index 581d3281ef..e8fa44eb17 100644 --- a/fxjs/xfa/cjx_node.cpp +++ b/fxjs/xfa/cjx_node.cpp @@ -267,11 +267,11 @@ CJS_Return CJX_Node::loadXML(CJS_V8* runtime, return CJS_Return(true); if (bOverwrite) { - CXFA_Node* pChild = GetXFANode()->GetNodeItem(XFA_NODEITEM_FirstChild); - CXFA_Node* pNewChild = pFakeRoot->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pChild = GetXFANode()->GetFirstChild(); + CXFA_Node* pNewChild = pFakeRoot->GetFirstChild(); int32_t index = 0; while (pNewChild) { - CXFA_Node* pItem = pNewChild->GetNodeItem(XFA_NODEITEM_NextSibling); + CXFA_Node* pItem = pNewChild->GetNextSibling(); pFakeRoot->RemoveChild(pNewChild, true); GetXFANode()->InsertChild(index++, pNewChild); pNewChild->SetFlag(XFA_NodeFlag_Initialized, true); @@ -279,7 +279,7 @@ CJS_Return CJX_Node::loadXML(CJS_V8* runtime, } while (pChild) { - CXFA_Node* pItem = pChild->GetNodeItem(XFA_NODEITEM_NextSibling); + CXFA_Node* pItem = pChild->GetNextSibling(); GetXFANode()->RemoveChild(pChild, true); pFakeRoot->InsertChild(pChild, nullptr); pChild = pItem; @@ -297,9 +297,9 @@ CJS_Return CJX_Node::loadXML(CJS_V8* runtime, } MoveBufferMapData(pFakeRoot, GetXFANode()); } else { - CXFA_Node* pChild = pFakeRoot->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pChild = pFakeRoot->GetFirstChild(); while (pChild) { - CXFA_Node* pItem = pChild->GetNodeItem(XFA_NODEITEM_NextSibling); + CXFA_Node* pItem = pChild->GetNextSibling(); pFakeRoot->RemoveChild(pChild, true); GetXFANode()->InsertChild(pChild, nullptr); pChild->SetFlag(XFA_NodeFlag_Initialized, true); @@ -483,7 +483,7 @@ int32_t CJX_Node::execSingleEventByName(const WideStringView& wsEventName, if (eType != XFA_Element::ExclGroup && eType != XFA_Element::Field) return XFA_EVENTERROR_NotExist; - CXFA_Node* pParentNode = GetXFANode()->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParentNode = GetXFANode()->GetParent(); if (pParentNode && pParentNode->GetElementType() == XFA_Element::ExclGroup) { // TODO(dsinclair): This seems like a bug, we do the same work twice? diff --git a/fxjs/xfa/cjx_object.cpp b/fxjs/xfa/cjx_object.cpp index 45089f68da..f1b863ddc1 100644 --- a/fxjs/xfa/cjx_object.cpp +++ b/fxjs/xfa/cjx_object.cpp @@ -152,9 +152,8 @@ void CJX_Object::className(CFXJSE_Value* pValue, int32_t CJX_Object::Subform_and_SubformSet_InstanceIndex() { int32_t index = 0; - for (CXFA_Node* pNode = - ToNode(GetXFAObject())->GetNodeItem(XFA_NODEITEM_PrevSibling); - pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_PrevSibling)) { + for (CXFA_Node* pNode = ToNode(GetXFAObject())->GetPrevSibling(); pNode; + pNode = pNode->GetPrevSibling()) { if ((pNode->GetElementType() != XFA_Element::Subform) && (pNode->GetElementType() != XFA_Element::SubformSet)) { break; @@ -452,7 +451,8 @@ bool CJX_Object::SetCData(XFA_Attribute eAttr, const WideString& wsValue, bool bNotify, bool bScriptModify) { - void* pKey = GetMapKey_Element(GetXFAObject()->GetElementType(), eAttr); + CXFA_Node* xfaObj = ToNode(GetXFAObject()); + void* pKey = GetMapKey_Element(xfaObj->GetElementType(), eAttr); OnChanging(eAttr, bNotify); if (eAttr == XFA_Attribute::Value) { WideString* pClone = new WideString(wsValue); @@ -460,40 +460,35 @@ bool CJX_Object::SetCData(XFA_Attribute eAttr, } else { SetMapModuleString(pKey, wsValue.AsStringView()); if (eAttr == XFA_Attribute::Name) - ToNode(GetXFAObject())->UpdateNameHash(); + xfaObj->UpdateNameHash(); } OnChanged(eAttr, bNotify, bScriptModify); - if (!ToNode(GetXFAObject())->IsNeedSavingXMLNode() || - eAttr == XFA_Attribute::QualifiedName || + if (!xfaObj->IsNeedSavingXMLNode() || eAttr == XFA_Attribute::QualifiedName || eAttr == XFA_Attribute::BindingNode) { return true; } if (eAttr == XFA_Attribute::Name && - (GetXFAObject()->GetElementType() == XFA_Element::DataValue || - GetXFAObject()->GetElementType() == XFA_Element::DataGroup)) { + (xfaObj->GetElementType() == XFA_Element::DataValue || + xfaObj->GetElementType() == XFA_Element::DataGroup)) { return true; } - auto* elem = - static_cast(ToNode(GetXFAObject())->GetXMLMappingNode()); + auto* elem = static_cast(xfaObj->GetXMLMappingNode()); if (eAttr == XFA_Attribute::Value) { FX_XMLNODETYPE eXMLType = elem->GetType(); switch (eXMLType) { case FX_XMLNODE_Element: - if (ToNode(GetXFAObject())->IsAttributeInXML()) { + if (xfaObj->IsAttributeInXML()) { elem->SetString(WideString(GetCData(XFA_Attribute::QualifiedName)), wsValue); } else { bool bDeleteChildren = true; - if (ToNode(GetXFAObject())->GetPacketType() == - XFA_PacketType::Datasets) { - for (CXFA_Node* pChildDataNode = - ToNode(GetXFAObject()) - ->GetNodeItem(XFA_NODEITEM_FirstChild); - pChildDataNode; pChildDataNode = pChildDataNode->GetNodeItem( - XFA_NODEITEM_NextSibling)) { + if (xfaObj->GetPacketType() == XFA_PacketType::Datasets) { + for (CXFA_Node* pChildDataNode = xfaObj->GetFirstChild(); + pChildDataNode; + pChildDataNode = pChildDataNode->GetNextSibling()) { if (!pChildDataNode->GetBindItems()->empty()) { bDeleteChildren = false; break; @@ -507,7 +502,7 @@ bool CJX_Object::SetCData(XFA_Attribute eAttr, } break; case FX_XMLNODE_Text: - static_cast(ToNode(GetXFAObject())->GetXMLMappingNode()) + static_cast(xfaObj->GetXMLMappingNode()) ->SetText(wsValue); break; default: @@ -529,31 +524,30 @@ void CJX_Object::SetAttributeValue(const WideString& wsValue, const WideString& wsXMLValue, bool bNotify, bool bScriptModify) { + auto* xfaObj = ToNode(GetXFAObject()); + void* pKey = - GetMapKey_Element(GetXFAObject()->GetElementType(), XFA_Attribute::Value); + GetMapKey_Element(xfaObj->GetElementType(), XFA_Attribute::Value); OnChanging(XFA_Attribute::Value, bNotify); WideString* pClone = new WideString(wsValue); SetUserData(pKey, pClone, &deleteWideStringCallBack); OnChanged(XFA_Attribute::Value, bNotify, bScriptModify); - if (!ToNode(GetXFAObject())->IsNeedSavingXMLNode()) + if (!xfaObj->IsNeedSavingXMLNode()) return; - auto* elem = - static_cast(ToNode(GetXFAObject())->GetXMLMappingNode()); + auto* elem = static_cast(xfaObj->GetXMLMappingNode()); FX_XMLNODETYPE eXMLType = elem->GetType(); switch (eXMLType) { case FX_XMLNODE_Element: - if (ToNode(GetXFAObject())->IsAttributeInXML()) { + if (xfaObj->IsAttributeInXML()) { elem->SetString(WideString(GetCData(XFA_Attribute::QualifiedName)), wsXMLValue); } else { bool bDeleteChildren = true; - if (ToNode(GetXFAObject())->GetPacketType() == - XFA_PacketType::Datasets) { - for (CXFA_Node* pChildDataNode = - ToNode(GetXFAObject())->GetNodeItem(XFA_NODEITEM_FirstChild); - pChildDataNode; pChildDataNode = pChildDataNode->GetNodeItem( - XFA_NODEITEM_NextSibling)) { + if (xfaObj->GetPacketType() == XFA_PacketType::Datasets) { + for (CXFA_Node* pChildDataNode = xfaObj->GetFirstChild(); + pChildDataNode; + pChildDataNode = pChildDataNode->GetNextSibling()) { if (!pChildDataNode->GetBindItems()->empty()) { bDeleteChildren = false; break; @@ -567,7 +561,7 @@ void CJX_Object::SetAttributeValue(const WideString& wsValue, } break; case FX_XMLNODE_Text: - static_cast(ToNode(GetXFAObject())->GetXMLMappingNode()) + static_cast(xfaObj->GetXMLMappingNode()) ->SetText(wsXMLValue); break; default: @@ -633,7 +627,7 @@ bool CJX_Object::SetContent(const WideString& wsContent, if (!pValue) break; - CXFA_Node* pChildValue = pValue->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pChildValue = pValue->GetFirstChild(); ASSERT(pChildValue); pChildValue->JSObject()->SetCData(XFA_Attribute::ContentType, L"text/xml", false, false); @@ -664,8 +658,7 @@ bool CJX_Object::SetContent(const WideString& wsContent, iSize = wsSaveTextArray.size(); } if (iSize == 0) { - while (CXFA_Node* pChildNode = - pBind->GetNodeItem(XFA_NODEITEM_FirstChild)) { + while (CXFA_Node* pChildNode = pBind->GetFirstChild()) { pBind->RemoveChild(pChildNode, true); } } else { @@ -687,15 +680,12 @@ bool CJX_Object::SetContent(const WideString& wsContent, } else if (iDatas > iSize) { size_t iDelNodes = iDatas - iSize; while (iDelNodes-- > 0) { - pBind->RemoveChild(pBind->GetNodeItem(XFA_NODEITEM_FirstChild), - true); + pBind->RemoveChild(pBind->GetFirstChild(), true); } } int32_t i = 0; - for (CXFA_Node* pValueNode = - pBind->GetNodeItem(XFA_NODEITEM_FirstChild); - pValueNode; pValueNode = pValueNode->GetNodeItem( - XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pValueNode = pBind->GetFirstChild(); pValueNode; + pValueNode = pValueNode->GetNextSibling()) { pValueNode->JSObject()->SetAttributeValue( wsSaveTextArray[i], wsSaveTextArray[i], false, false); i++; @@ -718,7 +708,7 @@ bool CJX_Object::SetContent(const WideString& wsContent, if (!pValue) break; - CXFA_Node* pChildValue = pValue->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pChildValue = pValue->GetFirstChild(); ASSERT(pChildValue); pChildValue->JSObject()->SetContent(wsContent, wsContent, bNotify, bScriptModify, false); @@ -751,8 +741,7 @@ bool CJX_Object::SetContent(const WideString& wsContent, } } - CXFA_Node* pContentRawDataNode = - ToNode(GetXFAObject())->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pContentRawDataNode = ToNode(GetXFAObject())->GetFirstChild(); if (!pContentRawDataNode) { pContentRawDataNode = ToNode(GetXFAObject()) @@ -772,13 +761,12 @@ bool CJX_Object::SetContent(const WideString& wsContent, pNode = ToNode(GetXFAObject()); if (bSyncData && ToNode(GetXFAObject())->GetPacketType() == XFA_PacketType::Form) { - CXFA_Node* pParent = - ToNode(GetXFAObject())->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParent = ToNode(GetXFAObject())->GetParent(); if (pParent) { - pParent = pParent->GetNodeItem(XFA_NODEITEM_Parent); + pParent = pParent->GetParent(); } if (pParent && pParent->GetElementType() == XFA_Element::Value) { - pParent = pParent->GetNodeItem(XFA_NODEITEM_Parent); + pParent = pParent->GetParent(); if (pParent && pParent->IsContainerNode()) { pBindNode = pParent->GetBindData(); if (pBindNode) { @@ -826,7 +814,7 @@ Optional CJX_Object::TryContent(bool bScriptModify, bool bProto) { if (!pValue) return {}; - CXFA_Node* pChildValue = pValue->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pChildValue = pValue->GetFirstChild(); if (pChildValue && XFA_FieldIsMultiListBox(ToNode(GetXFAObject()))) { pChildValue->JSObject()->SetAttribute(XFA_Attribute::ContentType, L"text/xml", false); @@ -837,8 +825,7 @@ Optional CJX_Object::TryContent(bool bScriptModify, bool bProto) { } break; case XFA_ObjectType::ContentNode: { - CXFA_Node* pContentRawDataNode = - ToNode(GetXFAObject())->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pContentRawDataNode = ToNode(GetXFAObject())->GetFirstChild(); if (!pContentRawDataNode) { XFA_Element element = XFA_Element::Sharptext; if (ToNode(GetXFAObject())->GetElementType() == XFA_Element::ExData) { @@ -917,7 +904,7 @@ std::pair CJX_Object::GetPropertyInternal( int32_t iCount = 0; for (CXFA_Node* pNode = xfaNode->GetChildNode(); pNode; - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + pNode = pNode->GetNextSibling()) { if (pNode->GetElementType() == eProperty) { iCount++; if (iCount > index) @@ -941,7 +928,7 @@ CXFA_Node* CJX_Object::GetOrCreatePropertyInternal(int32_t index, if (xfaNode->HasPropertyFlags(eProperty, XFA_PROPERTYFLAG_OneOf)) { for (CXFA_Node* pNode = xfaNode->GetChildNode(); pNode; - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + pNode = pNode->GetNextSibling()) { if (xfaNode->HasPropertyFlags(pNode->GetElementType(), XFA_PROPERTYFLAG_OneOf)) { return nullptr; @@ -1185,15 +1172,13 @@ void CJX_Object::MoveBufferMapData(CXFA_Object* pSrcModule, if (!pSrcModule || !pDstModule) return; - CXFA_Node* pSrcChild = - ToNode(pSrcModule)->GetNodeItem(XFA_NODEITEM_FirstChild); - CXFA_Node* pDstChild = - ToNode(pDstModule)->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pSrcChild = ToNode(pSrcModule)->GetFirstChild(); + CXFA_Node* pDstChild = ToNode(pDstModule)->GetFirstChild(); while (pSrcChild && pDstChild) { MoveBufferMapData(pSrcChild, pDstChild); - pSrcChild = pSrcChild->GetNodeItem(XFA_NODEITEM_NextSibling); - pDstChild = pDstChild->GetNodeItem(XFA_NODEITEM_NextSibling); + pSrcChild = pSrcChild->GetNextSibling(); + pDstChild = pDstChild->GetNextSibling(); } ToNode(pSrcModule)->JSObject()->MoveBufferMapData(pDstModule); } @@ -1270,18 +1255,17 @@ void CJX_Object::Script_Attribute_String(CFXJSE_Value* pValue, if (!pProtoNode) return; - CXFA_Node* pHeadChild = - ToNode(GetXFAObject())->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pHeadChild = ToNode(GetXFAObject())->GetFirstChild(); while (pHeadChild) { - CXFA_Node* pSibling = pHeadChild->GetNodeItem(XFA_NODEITEM_NextSibling); + CXFA_Node* pSibling = pHeadChild->GetNextSibling(); ToNode(GetXFAObject())->RemoveChild(pHeadChild, true); pHeadChild = pSibling; } std::unique_ptr pProtoForm(pProtoNode->CloneTemplateToForm(true)); - pHeadChild = pProtoForm->GetNodeItem(XFA_NODEITEM_FirstChild); + pHeadChild = pProtoForm->GetFirstChild(); while (pHeadChild) { - CXFA_Node* pSibling = pHeadChild->GetNodeItem(XFA_NODEITEM_NextSibling); + CXFA_Node* pSibling = pHeadChild->GetNextSibling(); pProtoForm->RemoveChild(pHeadChild, true); ToNode(GetXFAObject())->InsertChild(pHeadChild, nullptr); pHeadChild = pSibling; @@ -1619,9 +1603,8 @@ void CJX_Object::Script_Som_InstanceIndex(CFXJSE_Value* pValue, int32_t iTo = pValue->ToInteger(); int32_t iFrom = Subform_and_SubformSet_InstanceIndex(); CXFA_Node* pManagerNode = nullptr; - for (CXFA_Node* pNode = - ToNode(GetXFAObject())->GetNodeItem(XFA_NODEITEM_PrevSibling); - pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_PrevSibling)) { + for (CXFA_Node* pNode = ToNode(GetXFAObject())->GetPrevSibling(); pNode; + pNode = pNode->GetPrevSibling()) { if (pNode->GetElementType() == XFA_Element::InstanceManager) { pManagerNode = pNode; break; @@ -1658,9 +1641,8 @@ void CJX_Object::Script_Subform_InstanceManager(CFXJSE_Value* pValue, WideString wsName = GetCData(XFA_Attribute::Name); CXFA_Node* pInstanceMgr = nullptr; - for (CXFA_Node* pNode = - ToNode(GetXFAObject())->GetNodeItem(XFA_NODEITEM_PrevSibling); - pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_PrevSibling)) { + for (CXFA_Node* pNode = ToNode(GetXFAObject())->GetPrevSibling(); pNode; + pNode = pNode->GetPrevSibling()) { if (pNode->GetElementType() == XFA_Element::InstanceManager) { WideString wsInstMgrName = pNode->JSObject()->GetCData(XFA_Attribute::Name); diff --git a/fxjs/xfa/cjx_tree.cpp b/fxjs/xfa/cjx_tree.cpp index 4a7a2fcc17..e20115b9bc 100644 --- a/fxjs/xfa/cjx_tree.cpp +++ b/fxjs/xfa/cjx_tree.cpp @@ -159,7 +159,7 @@ void CJX_Tree::parent(CFXJSE_Value* pValue, return; } - CXFA_Node* pParent = ToNode(GetXFAObject())->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParent = ToNode(GetXFAObject())->GetParent(); if (!pParent) { pValue->SetNull(); return; diff --git a/xfa/fxfa/cxfa_ffdoc.cpp b/xfa/fxfa/cxfa_ffdoc.cpp index bb05d66968..4652c4f315 100644 --- a/xfa/fxfa/cxfa_ffdoc.cpp +++ b/xfa/fxfa/cxfa_ffdoc.cpp @@ -214,15 +214,14 @@ bool XFA_GetPDFContentsFromPDFXML(CFX_XMLNode* pPDFElement, return true; } void XFA_XPDPacket_MergeRootNode(CXFA_Node* pOriginRoot, CXFA_Node* pNewRoot) { - CXFA_Node* pChildNode = pNewRoot->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pChildNode = pNewRoot->GetFirstChild(); while (pChildNode) { CXFA_Node* pOriginChild = pOriginRoot->GetFirstChildByName(pChildNode->GetNameHash()); if (pOriginChild) { - pChildNode = pChildNode->GetNodeItem(XFA_NODEITEM_NextSibling); + pChildNode = pChildNode->GetNextSibling(); } else { - CXFA_Node* pNextSibling = - pChildNode->GetNodeItem(XFA_NODEITEM_NextSibling); + CXFA_Node* pNextSibling = pChildNode->GetNextSibling(); pNewRoot->RemoveChild(pChildNode, true); pOriginRoot->InsertChild(pChildNode, nullptr); pChildNode = pNextSibling; diff --git a/xfa/fxfa/cxfa_ffdocview.cpp b/xfa/fxfa/cxfa_ffdocview.cpp index 52c4f0cb15..681d4cd8f8 100644 --- a/xfa/fxfa/cxfa_ffdocview.cpp +++ b/xfa/fxfa/cxfa_ffdocview.cpp @@ -729,7 +729,7 @@ void CXFA_FFDocView::RunBindItems() { if (item->HasRemovedChildren()) continue; - CXFA_Node* pWidgetNode = item->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pWidgetNode = item->GetParent(); CXFA_WidgetAcc* pAcc = pWidgetNode->GetWidgetAcc(); if (!pAcc) continue; diff --git a/xfa/fxfa/cxfa_ffnotify.cpp b/xfa/fxfa/cxfa_ffnotify.cpp index 7fd3699f04..1322461875 100644 --- a/xfa/fxfa/cxfa_ffnotify.cpp +++ b/xfa/fxfa/cxfa_ffnotify.cpp @@ -435,8 +435,8 @@ void CXFA_FFNotify::OnValueChanged(CXFA_Node* pSender, pWidgetAcc->UpdateUIDisplay(m_pDoc->GetDocView(), nullptr); pDocView->AddCalculateWidgetAcc(pWidgetAcc); pDocView->AddValidateWidget(pWidgetAcc); - } else if (pWidgetNode->GetNodeItem(XFA_NODEITEM_Parent) - ->GetElementType() == XFA_Element::ExclGroup) { + } else if (pWidgetNode->GetParent()->GetElementType() == + XFA_Element::ExclGroup) { pWidgetAcc->UpdateUIDisplay(m_pDoc->GetDocView(), nullptr); } return; diff --git a/xfa/fxfa/cxfa_ffwidget.cpp b/xfa/fxfa/cxfa_ffwidget.cpp index 10ea64fd15..d420b3cf3c 100644 --- a/xfa/fxfa/cxfa_ffwidget.cpp +++ b/xfa/fxfa/cxfa_ffwidget.cpp @@ -1271,7 +1271,7 @@ bool CXFA_FFWidget::IsLayoutRectEmpty() { return rtLayout.width < 0.1f && rtLayout.height < 0.1f; } CXFA_FFWidget* CXFA_FFWidget::GetParent() { - CXFA_Node* pParentNode = m_pNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParentNode = m_pNode->GetParent(); if (pParentNode) { CXFA_WidgetAcc* pParentWidgetAcc = static_cast(pParentNode->GetWidgetAcc()); @@ -1293,7 +1293,7 @@ bool CXFA_FFWidget::IsAncestorOf(CXFA_FFWidget* pWidget) { if (pChildNode == m_pNode) return true; - pChildNode = pChildNode->GetNodeItem(XFA_NODEITEM_Parent); + pChildNode = pChildNode->GetParent(); } return false; } diff --git a/xfa/fxfa/cxfa_ffwidgethandler.cpp b/xfa/fxfa/cxfa_ffwidgethandler.cpp index aece6c8b00..857a3c6687 100644 --- a/xfa/fxfa/cxfa_ffwidgethandler.cpp +++ b/xfa/fxfa/cxfa_ffwidgethandler.cpp @@ -405,8 +405,8 @@ CXFA_Node* CXFA_FFWidgetHandler::CreateDropdownList(CXFA_Node* pParent, CXFA_Node* CXFA_FFWidgetHandler::CreateListBox(CXFA_Node* pParent, CXFA_Node* pBefore) const { CXFA_Node* pField = CreateDropdownList(pParent, pBefore); - CXFA_Node* pUi = pField->GetNodeItem(XFA_NODEITEM_FirstChild); - CXFA_Node* pListBox = pUi->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pUi = pField->GetFirstChild(); + CXFA_Node* pListBox = pUi->GetFirstChild(); pListBox->JSObject()->SetEnum(XFA_Attribute::Open, XFA_AttributeEnum::Always, false); pListBox->JSObject()->SetEnum(XFA_Attribute::CommitOn, diff --git a/xfa/fxfa/cxfa_textprovider.cpp b/xfa/fxfa/cxfa_textprovider.cpp index 1007c6d646..e3222a9c8b 100644 --- a/xfa/fxfa/cxfa_textprovider.cpp +++ b/xfa/fxfa/cxfa_textprovider.cpp @@ -48,7 +48,7 @@ CXFA_Node* CXFA_TextProvider::GetTextNode(bool& bRichText) { if (!pValueNode) return nullptr; - CXFA_Node* pChildNode = pValueNode->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pChildNode = pValueNode->GetFirstChild(); if (pChildNode && pChildNode->GetElementType() == XFA_Element::ExData) { Optional contentType = pChildNode->JSObject()->TryAttribute( XFA_Attribute::ContentType, false); @@ -87,7 +87,7 @@ CXFA_Node* CXFA_TextProvider::GetTextNode(bool& bRichText) { if (!pValueNode) return nullptr; - CXFA_Node* pChildNode = pValueNode->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pChildNode = pValueNode->GetFirstChild(); if (pChildNode && pChildNode->GetElementType() == XFA_Element::ExData) { Optional contentType = pChildNode->JSObject()->TryAttribute( XFA_Attribute::ContentType, false); @@ -102,7 +102,7 @@ CXFA_Node* CXFA_TextProvider::GetTextNode(bool& bRichText) { if (!pItemNode) return nullptr; - CXFA_Node* pNode = pItemNode->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pNode = pItemNode->GetFirstChild(); while (pNode) { WideString wsName = pNode->JSObject()->GetCData(XFA_Attribute::Name); if (m_eType == XFA_TEXTPROVIDERTYPE_Rollover && wsName == L"rollover") @@ -110,7 +110,7 @@ CXFA_Node* CXFA_TextProvider::GetTextNode(bool& bRichText) { if (m_eType == XFA_TEXTPROVIDERTYPE_Down && wsName == L"down") return pNode; - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling); + pNode = pNode->GetNextSibling(); } return nullptr; } @@ -152,7 +152,7 @@ bool CXFA_TextProvider::GetEmbbedObj(bool bURI, return false; CXFA_Node* pWidgetNode = m_pWidgetAcc->GetNode(); - CXFA_Node* pParent = pWidgetNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParent = pWidgetNode->GetParent(); CXFA_Document* pDocument = pWidgetNode->GetDocument(); CXFA_Node* pIDNode = nullptr; CXFA_WidgetAcc* pEmbAcc = nullptr; diff --git a/xfa/fxfa/cxfa_widgetacc.cpp b/xfa/fxfa/cxfa_widgetacc.cpp index 11b7e23d5c..2889707280 100644 --- a/xfa/fxfa/cxfa_widgetacc.cpp +++ b/xfa/fxfa/cxfa_widgetacc.cpp @@ -258,8 +258,8 @@ std::pair CreateUIChild(CXFA_Node* pNode) { CXFA_Node* pUIChild = nullptr; CXFA_Ui* pUI = pNode->JSObject()->GetOrCreateProperty(0, XFA_Element::Ui); - CXFA_Node* pChild = pUI->GetNodeItem(XFA_NODEITEM_FirstChild); - for (; pChild; pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { + CXFA_Node* pChild = pUI->GetFirstChild(); + for (; pChild; pChild = pChild->GetNextSibling()) { XFA_Element eChildType = pChild->GetElementType(); if (eChildType == XFA_Element::Extras || eChildType == XFA_Element::Picture) { @@ -454,7 +454,7 @@ void CXFA_WidgetAcc::SetImageEdit(const WideString& wsContentType, } pBind->JSObject()->SetCData(XFA_Attribute::ContentType, wsContentType, false, false); - CXFA_Node* pHrefNode = pBind->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pHrefNode = pBind->GetFirstChild(); if (pHrefNode) { pHrefNode->JSObject()->SetCData(XFA_Attribute::Value, wsHref, false, false); } else { @@ -1069,7 +1069,7 @@ bool CXFA_WidgetAcc::FindSplitPos(CXFA_FFDocView* docView, XFA_VERSION version = docView->GetDoc()->GetXFADoc()->GetCurVersionMode(); bool bCanSplitNoContent = false; XFA_AttributeEnum eLayoutMode = GetNode() - ->GetNodeItem(XFA_NODEITEM_Parent) + ->GetParent() ->JSObject() ->TryEnum(XFA_Attribute::Layout, true) .value_or(XFA_AttributeEnum::Position); @@ -1397,8 +1397,8 @@ bool CXFA_WidgetAcc::HasButtonRollover() const { if (!pItems) return false; - for (CXFA_Node* pText = pItems->GetNodeItem(XFA_NODEITEM_FirstChild); pText; - pText = pText->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pText = pItems->GetFirstChild(); pText; + pText = pText->GetNextSibling()) { if (pText->JSObject()->GetCData(XFA_Attribute::Name) == L"rollover") return !pText->JSObject()->GetContent(false).IsEmpty(); } @@ -1411,8 +1411,8 @@ bool CXFA_WidgetAcc::HasButtonDown() const { if (!pItems) return false; - for (CXFA_Node* pText = pItems->GetNodeItem(XFA_NODEITEM_FirstChild); pText; - pText = pText->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pText = pItems->GetFirstChild(); pText; + pText = pText->GetNextSibling()) { if (pText->JSObject()->GetCData(XFA_Attribute::Name) == L"down") return !pText->JSObject()->GetContent(false).IsEmpty(); } @@ -1435,7 +1435,7 @@ XFA_AttributeEnum CXFA_WidgetAcc::GetCheckButtonMark() { } bool CXFA_WidgetAcc::IsRadioButton() { - CXFA_Node* pParent = m_pNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParent = m_pNode->GetParent(); return pParent && pParent->GetElementType() == XFA_Element::ExclGroup; } @@ -1464,7 +1464,7 @@ XFA_CHECKSTATE CXFA_WidgetAcc::GetCheckState() { if (!pItems) return XFA_CHECKSTATE_Off; - CXFA_Node* pText = pItems->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pText = pItems->GetFirstChild(); int32_t i = 0; while (pText) { Optional wsContent = pText->JSObject()->TryContent(false, true); @@ -1472,7 +1472,7 @@ XFA_CHECKSTATE CXFA_WidgetAcc::GetCheckState() { return static_cast(i); i++; - pText = pText->GetNodeItem(XFA_NODEITEM_NextSibling); + pText = pText->GetNextSibling(); } return XFA_CHECKSTATE_Off; } @@ -1486,7 +1486,7 @@ void CXFA_WidgetAcc::SetCheckState(XFA_CHECKSTATE eCheckState, bool bNotify) { return; int32_t i = -1; - CXFA_Node* pText = pItems->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pText = pItems->GetFirstChild(); WideString wsContent; while (pText) { i++; @@ -1494,7 +1494,7 @@ void CXFA_WidgetAcc::SetCheckState(XFA_CHECKSTATE eCheckState, bool bNotify) { wsContent = pText->JSObject()->GetContent(false); break; } - pText = pText->GetNodeItem(XFA_NODEITEM_NextSibling); + pText = pText->GetNextSibling(); } if (m_pNode) m_pNode->SyncValue(wsContent, bNotify); @@ -1505,13 +1505,13 @@ void CXFA_WidgetAcc::SetCheckState(XFA_CHECKSTATE eCheckState, bool bNotify) { if (eCheckState != XFA_CHECKSTATE_Off) { if (CXFA_Items* pItems = m_pNode->GetChild(0, XFA_Element::Items, false)) { - CXFA_Node* pText = pItems->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pText = pItems->GetFirstChild(); if (pText) wsValue = pText->JSObject()->GetContent(false); } } - CXFA_Node* pChild = node->GetNodeItem(XFA_NODEITEM_FirstChild); - for (; pChild; pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { + CXFA_Node* pChild = node->GetFirstChild(); + for (; pChild; pChild = pChild->GetNextSibling()) { if (pChild->GetElementType() != XFA_Element::Field) continue; @@ -1520,14 +1520,14 @@ void CXFA_WidgetAcc::SetCheckState(XFA_CHECKSTATE eCheckState, bool bNotify) { if (!pItem) continue; - CXFA_Node* pItemchild = pItem->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pItemchild = pItem->GetFirstChild(); if (!pItemchild) continue; WideString text = pItemchild->JSObject()->GetContent(false); WideString wsChildValue = text; if (wsValue != text) { - pItemchild = pItemchild->GetNodeItem(XFA_NODEITEM_NextSibling); + pItemchild = pItemchild->GetNextSibling(); if (pItemchild) wsChildValue = pItemchild->JSObject()->GetContent(false); else @@ -1544,8 +1544,8 @@ CXFA_Node* CXFA_WidgetAcc::GetSelectedMember() { if (wsState.IsEmpty()) return pSelectedMember; - for (CXFA_Node* pNode = ToNode(m_pNode->GetNodeItem(XFA_NODEITEM_FirstChild)); - pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pNode = ToNode(m_pNode->GetFirstChild()); pNode; + pNode = pNode->GetNextSibling()) { CXFA_WidgetAcc widgetData(pNode); if (widgetData.GetCheckState() == XFA_CHECKSTATE_On) { pSelectedMember = pNode; @@ -1558,8 +1558,8 @@ CXFA_Node* CXFA_WidgetAcc::GetSelectedMember() { CXFA_Node* CXFA_WidgetAcc::SetSelectedMember(const WideStringView& wsName, bool bNotify) { uint32_t nameHash = FX_HashCode_GetW(wsName, false); - for (CXFA_Node* pNode = ToNode(m_pNode->GetNodeItem(XFA_NODEITEM_FirstChild)); - pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pNode = ToNode(m_pNode->GetFirstChild()); pNode; + pNode = pNode->GetNextSibling()) { if (pNode->GetNameHash() == nameHash) { CXFA_WidgetAcc widgetData(pNode); widgetData.SetCheckState(XFA_CHECKSTATE_On, bNotify); @@ -1574,8 +1574,8 @@ void CXFA_WidgetAcc::SetSelectedMemberByValue(const WideStringView& wsValue, bool bScriptModify, bool bSyncData) { WideString wsExclGroup; - for (CXFA_Node* pNode = m_pNode->GetNodeItem(XFA_NODEITEM_FirstChild); pNode; - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pNode = m_pNode->GetFirstChild(); pNode; + pNode = pNode->GetNextSibling()) { if (pNode->GetElementType() != XFA_Element::Field) continue; @@ -1584,13 +1584,13 @@ void CXFA_WidgetAcc::SetSelectedMemberByValue(const WideStringView& wsValue, if (!pItem) continue; - CXFA_Node* pItemchild = pItem->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pItemchild = pItem->GetFirstChild(); if (!pItemchild) continue; WideString wsChildValue = pItemchild->JSObject()->GetContent(false); if (wsValue != wsChildValue) { - pItemchild = pItemchild->GetNodeItem(XFA_NODEITEM_NextSibling); + pItemchild = pItemchild->GetNextSibling(); if (pItemchild) wsChildValue = pItemchild->JSObject()->GetContent(false); else @@ -1612,12 +1612,12 @@ CXFA_Node* CXFA_WidgetAcc::GetExclGroupFirstMember() { if (!pExcl) return nullptr; - CXFA_Node* pNode = pExcl->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pNode = pExcl->GetFirstChild(); while (pNode) { if (pNode->GetElementType() == XFA_Element::Field) return pNode; - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling); + pNode = pNode->GetNextSibling(); } return nullptr; } @@ -1625,12 +1625,12 @@ CXFA_Node* CXFA_WidgetAcc::GetExclGroupNextMember(CXFA_Node* pNode) { if (!pNode) return nullptr; - CXFA_Node* pNodeField = pNode->GetNodeItem(XFA_NODEITEM_NextSibling); + CXFA_Node* pNodeField = pNode->GetNextSibling(); while (pNodeField) { if (pNodeField->GetElementType() == XFA_Element::Field) return pNodeField; - pNodeField = pNodeField->GetNodeItem(XFA_NODEITEM_NextSibling); + pNodeField = pNodeField->GetNextSibling(); } return nullptr; } @@ -1671,8 +1671,8 @@ bool CXFA_WidgetAcc::IsListBox() { int32_t CXFA_WidgetAcc::CountChoiceListItems(bool bSaveValue) { std::vector pItems; int32_t iCount = 0; - for (CXFA_Node* pNode = m_pNode->GetNodeItem(XFA_NODEITEM_FirstChild); pNode; - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pNode = m_pNode->GetFirstChild(); pNode; + pNode = pNode->GetNextSibling()) { if (pNode->GetElementType() != XFA_Element::Items) continue; iCount++; @@ -1699,8 +1699,8 @@ Optional CXFA_WidgetAcc::GetChoiceListItem(int32_t nIndex, bool bSaveValue) { std::vector pItemsArray; int32_t iCount = 0; - for (CXFA_Node* pNode = m_pNode->GetNodeItem(XFA_NODEITEM_FirstChild); pNode; - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pNode = m_pNode->GetFirstChild(); pNode; + pNode = pNode->GetNextSibling()) { if (pNode->GetElementType() != XFA_Element::Items) continue; @@ -1733,9 +1733,8 @@ Optional CXFA_WidgetAcc::GetChoiceListItem(int32_t nIndex, std::vector CXFA_WidgetAcc::GetChoiceListItems(bool bSaveValue) { std::vector items; - for (CXFA_Node* pNode = m_pNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pNode && items.size() < 2; - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pNode = m_pNode->GetFirstChild(); pNode && items.size() < 2; + pNode = pNode->GetNextSibling()) { if (pNode->GetElementType() == XFA_Element::Items) items.push_back(pNode); } @@ -1753,8 +1752,8 @@ std::vector CXFA_WidgetAcc::GetChoiceListItems(bool bSaveValue) { } std::vector wsTextArray; - for (CXFA_Node* pNode = pItem->GetNodeItem(XFA_NODEITEM_FirstChild); pNode; - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pNode = pItem->GetFirstChild(); pNode; + pNode = pNode->GetNextSibling()) { wsTextArray.emplace_back(pNode->JSObject()->GetContent(false)); } return wsTextArray; @@ -1908,7 +1907,7 @@ void CXFA_WidgetAcc::ClearAllSelections() { return; } - while (CXFA_Node* pChildNode = pBind->GetNodeItem(XFA_NODEITEM_FirstChild)) + while (CXFA_Node* pChildNode = pBind->GetFirstChild()) pBind->RemoveChild(pChildNode, true); } @@ -1921,8 +1920,8 @@ void CXFA_WidgetAcc::InsertItem(const WideString& wsLabel, wsNewValue = wsLabel; std::vector listitems; - for (CXFA_Node* pItem = m_pNode->GetNodeItem(XFA_NODEITEM_FirstChild); pItem; - pItem = pItem->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pItem = m_pNode->GetFirstChild(); pItem; + pItem = pItem->GetNextSibling()) { if (pItem->GetElementType() == XFA_Element::Items) listitems.push_back(pItem); } @@ -1953,14 +1952,14 @@ void CXFA_WidgetAcc::InsertItem(const WideString& wsLabel, pSaveItems->JSObject()->SetBoolean(XFA_Attribute::Save, true, false); pSaveItems->JSObject()->SetEnum(XFA_Attribute::Presence, XFA_AttributeEnum::Hidden, false); - CXFA_Node* pListNode = pNode->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pListNode = pNode->GetFirstChild(); int32_t i = 0; while (pListNode) { InsertListTextItem(pSaveItems, pListNode->JSObject()->GetContent(false), i); ++i; - pListNode = pListNode->GetNodeItem(XFA_NODEITEM_NextSibling); + pListNode = pListNode->GetNextSibling(); } InsertListTextItem(pNode, wsLabel, nIndex); InsertListTextItem(pSaveItems, wsNewValue, nIndex); @@ -1976,8 +1975,8 @@ void CXFA_WidgetAcc::GetItemLabel(const WideStringView& wsValue, WideString& wsLabel) { int32_t iCount = 0; std::vector listitems; - CXFA_Node* pItems = m_pNode->GetNodeItem(XFA_NODEITEM_FirstChild); - for (; pItems; pItems = pItems->GetNodeItem(XFA_NODEITEM_NextSibling)) { + CXFA_Node* pItems = m_pNode->GetFirstChild(); + for (; pItems; pItems = pItems->GetNextSibling()) { if (pItems->GetElementType() != XFA_Element::Items) continue; iCount++; @@ -2001,9 +2000,8 @@ void CXFA_WidgetAcc::GetItemLabel(const WideStringView& wsValue, iCount = 0; int32_t iSearch = -1; - for (CXFA_Node* pChildItem = pSaveItems->GetNodeItem(XFA_NODEITEM_FirstChild); - pChildItem; - pChildItem = pChildItem->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pChildItem = pSaveItems->GetFirstChild(); pChildItem; + pChildItem = pChildItem->GetNextSibling()) { if (pChildItem->JSObject()->GetContent(false) == wsValue) { iSearch = iCount; break; @@ -2022,8 +2020,8 @@ void CXFA_WidgetAcc::GetItemLabel(const WideStringView& wsValue, WideString CXFA_WidgetAcc::GetItemValue(const WideStringView& wsLabel) { int32_t iCount = 0; std::vector listitems; - for (CXFA_Node* pItems = m_pNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pItems; pItems = pItems->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pItems = m_pNode->GetFirstChild(); pItems; + pItems = pItems->GetNextSibling()) { if (pItems->GetElementType() != XFA_Element::Items) continue; iCount++; @@ -2045,9 +2043,8 @@ WideString CXFA_WidgetAcc::GetItemValue(const WideStringView& wsLabel) { int32_t iSearch = -1; WideString wsContent; - CXFA_Node* pChildItem = pLabelItems->GetNodeItem(XFA_NODEITEM_FirstChild); - for (; pChildItem; - pChildItem = pChildItem->GetNodeItem(XFA_NODEITEM_NextSibling)) { + CXFA_Node* pChildItem = pLabelItems->GetFirstChild(); + for (; pChildItem; pChildItem = pChildItem->GetNextSibling()) { if (pChildItem->JSObject()->GetContent(false) == wsLabel) { iSearch = iCount; break; @@ -2066,13 +2063,13 @@ bool CXFA_WidgetAcc::DeleteItem(int32_t nIndex, bool bNotify, bool bScriptModify) { bool bSetValue = false; - CXFA_Node* pItems = m_pNode->GetNodeItem(XFA_NODEITEM_FirstChild); - for (; pItems; pItems = pItems->GetNodeItem(XFA_NODEITEM_NextSibling)) { + CXFA_Node* pItems = m_pNode->GetFirstChild(); + for (; pItems; pItems = pItems->GetNextSibling()) { if (pItems->GetElementType() != XFA_Element::Items) continue; if (nIndex < 0) { - while (CXFA_Node* pNode = pItems->GetNodeItem(XFA_NODEITEM_FirstChild)) { + while (CXFA_Node* pNode = pItems->GetFirstChild()) { pItems->RemoveChild(pNode, true); } } else { @@ -2081,14 +2078,14 @@ bool CXFA_WidgetAcc::DeleteItem(int32_t nIndex, bSetValue = true; } int32_t i = 0; - CXFA_Node* pNode = pItems->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pNode = pItems->GetFirstChild(); while (pNode) { if (i == nIndex) { pItems->RemoveChild(pNode, true); break; } i++; - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling); + pNode = pNode->GetNextSibling(); } } } @@ -2139,7 +2136,7 @@ bool CXFA_WidgetAcc::IsMultiLine() { std::pair CXFA_WidgetAcc::GetMaxChars() { if (CXFA_Value* pNode = m_pNode->GetChild(0, XFA_Element::Value, false)) { - if (CXFA_Node* pChild = pNode->GetNodeItem(XFA_NODEITEM_FirstChild)) { + if (CXFA_Node* pChild = pNode->GetFirstChild()) { switch (pChild->GetElementType()) { case XFA_Element::Text: return {XFA_Element::Text, @@ -2423,7 +2420,7 @@ WideString CXFA_WidgetAcc::GetFormatDataValue(const WideString& wsValue) { if (!pNodeValue) return wsValue; - CXFA_Node* pValueChild = pNodeValue->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pValueChild = pNodeValue->GetFirstChild(); if (!pValueChild) return wsValue; diff --git a/xfa/fxfa/parser/cxfa_attachnodelist.cpp b/xfa/fxfa/parser/cxfa_attachnodelist.cpp index f9bd26bf82..f1fbfa784b 100644 --- a/xfa/fxfa/parser/cxfa_attachnodelist.cpp +++ b/xfa/fxfa/parser/cxfa_attachnodelist.cpp @@ -22,7 +22,7 @@ size_t CXFA_AttachNodeList::GetLength() { } bool CXFA_AttachNodeList::Append(CXFA_Node* pNode) { - CXFA_Node* pParent = pNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParent = pNode->GetParent(); if (pParent) pParent->RemoveChild(pNode, true); @@ -30,7 +30,7 @@ bool CXFA_AttachNodeList::Append(CXFA_Node* pNode) { } bool CXFA_AttachNodeList::Insert(CXFA_Node* pNewNode, CXFA_Node* pBeforeNode) { - CXFA_Node* pParent = pNewNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParent = pNewNode->GetParent(); if (pParent) pParent->RemoveChild(pNewNode, true); diff --git a/xfa/fxfa/parser/cxfa_dataexporter.cpp b/xfa/fxfa/parser/cxfa_dataexporter.cpp index fdd09c80a8..23fc17883a 100644 --- a/xfa/fxfa/parser/cxfa_dataexporter.cpp +++ b/xfa/fxfa/parser/cxfa_dataexporter.cpp @@ -50,8 +50,8 @@ bool CXFA_DataExporter::Export( case XFA_PacketType::Xdp: { pStream->WriteString( L""); - for (CXFA_Node* pChild = pNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pChild; pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pChild = pNode->GetFirstChild(); pChild; + pChild = pChild->GetNextSibling()) { Export(pStream, pChild, dwFlag, pChecksum); } pStream->WriteString(L""); @@ -63,7 +63,7 @@ bool CXFA_DataExporter::Export( if (!pElement || pElement->GetType() != FX_XMLNODE_Element) return false; - CXFA_Node* pDataNode = pNode->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pDataNode = pNode->GetFirstChild(); ASSERT(pDataNode); XFA_DataExporter_DealWithDataGroupNode(pDataNode); pXMLDoc->SaveXMLNode(pStream, pElement); @@ -87,11 +87,10 @@ bool CXFA_DataExporter::Export( return true; } - CXFA_Node* pDataNode = pNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pDataNode = pNode->GetParent(); CXFA_Node* pExportNode = pNode; - for (CXFA_Node* pChildNode = pDataNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pChildNode; - pChildNode = pChildNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pChildNode = pDataNode->GetFirstChild(); pChildNode; + pChildNode = pChildNode->GetNextSibling()) { if (pChildNode != pNode) { pExportNode = pDataNode; break; diff --git a/xfa/fxfa/parser/cxfa_dataimporter.cpp b/xfa/fxfa/parser/cxfa_dataimporter.cpp index 2967c30304..9171b00750 100644 --- a/xfa/fxfa/parser/cxfa_dataimporter.cpp +++ b/xfa/fxfa/parser/cxfa_dataimporter.cpp @@ -49,8 +49,7 @@ bool CXFA_DataImporter::ImportData( pDataModel->RemoveChild(pDataNode, true); if (pImportDataRoot->GetElementType() == XFA_Element::DataModel) { - while (CXFA_Node* pChildNode = - pImportDataRoot->GetNodeItem(XFA_NODEITEM_FirstChild)) { + while (CXFA_Node* pChildNode = pImportDataRoot->GetFirstChild()) { pImportDataRoot->RemoveChild(pChildNode, true); pDataModel->InsertChild(pChildNode, nullptr); } diff --git a/xfa/fxfa/parser/cxfa_document.cpp b/xfa/fxfa/parser/cxfa_document.cpp index b7c9be517f..0675e35358 100644 --- a/xfa/fxfa/parser/cxfa_document.cpp +++ b/xfa/fxfa/parser/cxfa_document.cpp @@ -36,10 +36,8 @@ void MergeNodeRecurse(CXFA_Document* pDocument, CXFA_Node* pDestNodeParent, CXFA_Node* pProtoNode) { CXFA_Node* pExistingNode = nullptr; - for (CXFA_Node* pFormChild = - pDestNodeParent->GetNodeItem(XFA_NODEITEM_FirstChild); - pFormChild; - pFormChild = pFormChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pFormChild = pDestNodeParent->GetFirstChild(); pFormChild; + pFormChild = pFormChild->GetNextSibling()) { if (pFormChild->GetElementType() == pProtoNode->GetElementType() && pFormChild->GetNameHash() == pProtoNode->GetNameHash() && pFormChild->IsUnusedNode()) { @@ -51,10 +49,8 @@ void MergeNodeRecurse(CXFA_Document* pDocument, if (pExistingNode) { pExistingNode->SetTemplateNode(pProtoNode); - for (CXFA_Node* pTemplateChild = - pProtoNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pTemplateChild; pTemplateChild = pTemplateChild->GetNodeItem( - XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pTemplateChild = pProtoNode->GetFirstChild(); + pTemplateChild; pTemplateChild = pTemplateChild->GetNextSibling()) { MergeNodeRecurse(pDocument, pExistingNode, pTemplateChild); } return; @@ -75,10 +71,8 @@ void MergeNode(CXFA_Document* pDocument, } } pDestNode->SetTemplateNode(pProtoNode); - for (CXFA_Node* pTemplateChild = - pProtoNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pTemplateChild; - pTemplateChild = pTemplateChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pTemplateChild = pProtoNode->GetFirstChild(); pTemplateChild; + pTemplateChild = pTemplateChild->GetNextSibling()) { MergeNodeRecurse(pDocument, pDestNode, pTemplateChild); } { diff --git a/xfa/fxfa/parser/cxfa_event.cpp b/xfa/fxfa/parser/cxfa_event.cpp index 2675761bc6..9eef655d31 100644 --- a/xfa/fxfa/parser/cxfa_event.cpp +++ b/xfa/fxfa/parser/cxfa_event.cpp @@ -54,13 +54,13 @@ XFA_AttributeEnum CXFA_Event::GetActivity() { } XFA_Element CXFA_Event::GetEventType() const { - CXFA_Node* pChild = GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pChild = GetFirstChild(); while (pChild) { XFA_Element eType = pChild->GetElementType(); if (eType != XFA_Element::Extras) return eType; - pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling); + pChild = pChild->GetNextSibling(); } return XFA_Element::Unknown; } diff --git a/xfa/fxfa/parser/cxfa_fill.cpp b/xfa/fxfa/parser/cxfa_fill.cpp index c55dd7e0e1..e6b289817e 100644 --- a/xfa/fxfa/parser/cxfa_fill.cpp +++ b/xfa/fxfa/parser/cxfa_fill.cpp @@ -85,13 +85,13 @@ FX_ARGB CXFA_Fill::GetColor(bool bText) { } XFA_Element CXFA_Fill::GetFillType() const { - CXFA_Node* pChild = GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pChild = GetFirstChild(); while (pChild) { XFA_Element eType = pChild->GetElementType(); if (eType != XFA_Element::Color && eType != XFA_Element::Extras) return eType; - pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling); + pChild = pChild->GetNextSibling(); } return XFA_Element::Solid; } diff --git a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp b/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp index 398a5e8f7c..0b8daa8970 100644 --- a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp +++ b/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp @@ -509,7 +509,7 @@ XFA_AttributeEnum GetLayout(CXFA_Node* pFormNode, bool* bRootForceTb) { if (layoutMode) return *layoutMode; - CXFA_Node* pParentNode = pFormNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParentNode = pFormNode->GetParent(); if (pParentNode && pParentNode->GetElementType() == XFA_Element::Form) { *bRootForceTb = true; return XFA_AttributeEnum::Tb; @@ -572,7 +572,7 @@ bool FindBreakNode(CXFA_Node* pContainerNode, bool bBreakBefore) { bool bFindRs = false; for (CXFA_Node* pBreakNode = pContainerNode; pBreakNode; - pBreakNode = pBreakNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + pBreakNode = pBreakNode->GetNextSibling()) { XFA_Attribute eAttributeType = XFA_Attribute::Before; if (!bBreakBefore) eAttributeType = XFA_Attribute::After; @@ -633,8 +633,7 @@ void DeleteLayoutGeneratedNode(CXFA_Node* pGenerateNode) { pCurLayoutItem = pNextLayoutItem; } } - pGenerateNode->GetNodeItem(XFA_NODEITEM_Parent) - ->RemoveChild(pGenerateNode, true); + pGenerateNode->GetParent()->RemoveChild(pGenerateNode, true); } uint8_t HAlignEnumToInt(XFA_AttributeEnum eHAlign) { @@ -686,10 +685,9 @@ XFA_ItemLayoutProcessorResult InsertFlowedItem( *uCurHAlignState = uHAlign; bool bIsOwnSplit = pProcessor->m_pFormNode->GetIntact() == XFA_AttributeEnum::None; - bool bUseRealHeight = - bTakeSpace && bContainerHeightAutoSize && bIsOwnSplit && - pProcessor->m_pFormNode->GetNodeItem(XFA_NODEITEM_Parent)->GetIntact() == - XFA_AttributeEnum::None; + bool bUseRealHeight = bTakeSpace && bContainerHeightAutoSize && bIsOwnSplit && + pProcessor->m_pFormNode->GetParent()->GetIntact() == + XFA_AttributeEnum::None; bool bIsTransHeight = bTakeSpace; if (bIsTransHeight && !bIsOwnSplit) { bool bRootForceTb = false; @@ -1386,7 +1384,7 @@ void CXFA_ItemLayoutProcessor::GotoNextContainerNode( switch (nCurStage) { case XFA_ItemLayoutProcessorStages::BreakBefore: case XFA_ItemLayoutProcessorStages::BreakAfter: { - pChildContainer = pCurActionNode->GetNodeItem(XFA_NODEITEM_Parent); + pChildContainer = pCurActionNode->GetParent(); break; } case XFA_ItemLayoutProcessorStages::Keep: @@ -1400,8 +1398,7 @@ void CXFA_ItemLayoutProcessor::GotoNextContainerNode( switch (nCurStage) { case XFA_ItemLayoutProcessorStages::Keep: { - CXFA_Node* pBreakAfterNode = - pChildContainer->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pBreakAfterNode = pChildContainer->GetFirstChild(); if (!m_bKeepBreakFinish && FindBreakNode(pBreakAfterNode, pCurActionNode, &nCurStage, false)) { return; @@ -1411,12 +1408,10 @@ void CXFA_ItemLayoutProcessor::GotoNextContainerNode( case XFA_ItemLayoutProcessorStages::None: { pCurActionNode = XFA_LAYOUT_INVALIDNODE; case XFA_ItemLayoutProcessorStages::BookendLeader: - for (CXFA_Node* pBookendNode = - pCurActionNode == XFA_LAYOUT_INVALIDNODE - ? pEntireContainer->GetNodeItem(XFA_NODEITEM_FirstChild) - : pCurActionNode->GetNodeItem(XFA_NODEITEM_NextSibling); - pBookendNode; pBookendNode = pBookendNode->GetNodeItem( - XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pBookendNode = pCurActionNode == XFA_LAYOUT_INVALIDNODE + ? pEntireContainer->GetFirstChild() + : pCurActionNode->GetNextSibling(); + pBookendNode; pBookendNode = pBookendNode->GetNextSibling()) { switch (pBookendNode->GetElementType()) { case XFA_Element::Bookend: case XFA_Element::Break: @@ -1432,8 +1427,7 @@ void CXFA_ItemLayoutProcessor::GotoNextContainerNode( pCurActionNode = XFA_LAYOUT_INVALIDNODE; case XFA_ItemLayoutProcessorStages::BreakBefore: if (pCurActionNode != XFA_LAYOUT_INVALIDNODE) { - CXFA_Node* pBreakBeforeNode = - pCurActionNode->GetNodeItem(XFA_NODEITEM_NextSibling); + CXFA_Node* pBreakBeforeNode = pCurActionNode->GetNextSibling(); if (!m_bKeepBreakFinish && FindBreakNode(pBreakBeforeNode, pCurActionNode, &nCurStage, true)) { @@ -1456,16 +1450,14 @@ void CXFA_ItemLayoutProcessor::GotoNextContainerNode( pCurActionNode = XFA_LAYOUT_INVALIDNODE; case XFA_ItemLayoutProcessorStages::BreakAfter: { if (pCurActionNode == XFA_LAYOUT_INVALIDNODE) { - CXFA_Node* pBreakAfterNode = - pChildContainer->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pBreakAfterNode = pChildContainer->GetFirstChild(); if (!m_bKeepBreakFinish && FindBreakNode(pBreakAfterNode, pCurActionNode, &nCurStage, false)) { return; } } else { - CXFA_Node* pBreakAfterNode = - pCurActionNode->GetNodeItem(XFA_NODEITEM_NextSibling); + CXFA_Node* pBreakAfterNode = pCurActionNode->GetNextSibling(); if (FindBreakNode(pBreakAfterNode, pCurActionNode, &nCurStage, false)) { return; @@ -1499,9 +1491,8 @@ void CXFA_ItemLayoutProcessor::GotoNextContainerNode( return; } if (!m_bKeepBreakFinish && !bLastKeep && - FindBreakNode( - pNextChildContainer->GetNodeItem(XFA_NODEITEM_FirstChild), - pCurActionNode, &nCurStage, true)) { + FindBreakNode(pNextChildContainer->GetFirstChild(), pCurActionNode, + &nCurStage, true)) { return; } pCurActionNode = pNextChildContainer; @@ -1515,12 +1506,10 @@ void CXFA_ItemLayoutProcessor::GotoNextContainerNode( NoMoreChildContainer : { pCurActionNode = XFA_LAYOUT_INVALIDNODE; case XFA_ItemLayoutProcessorStages::BookendTrailer: - for (CXFA_Node* pBookendNode = - pCurActionNode == XFA_LAYOUT_INVALIDNODE - ? pEntireContainer->GetNodeItem(XFA_NODEITEM_FirstChild) - : pCurActionNode->GetNodeItem(XFA_NODEITEM_NextSibling); - pBookendNode; pBookendNode = pBookendNode->GetNodeItem( - XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pBookendNode = pCurActionNode == XFA_LAYOUT_INVALIDNODE + ? pEntireContainer->GetFirstChild() + : pCurActionNode->GetNextSibling(); + pBookendNode; pBookendNode = pBookendNode->GetNextSibling()) { switch (pBookendNode->GetElementType()) { case XFA_Element::Bookend: case XFA_Element::Break: @@ -1559,8 +1548,8 @@ bool CXFA_ItemLayoutProcessor::ProcessKeepNodesForCheckNext( if (m_bIsProcessKeep && m_pKeepHeadNode) { m_pKeepTailNode = pNextContainer; if (!m_bKeepBreakFinish && - FindBreakNode(pNextContainer->GetNodeItem(XFA_NODEITEM_FirstChild), - pCurActionNode, &nCurStage, true)) { + FindBreakNode(pNextContainer->GetFirstChild(), pCurActionNode, + &nCurStage, true)) { return true; } @@ -1592,8 +1581,7 @@ bool CXFA_ItemLayoutProcessor::ProcessKeepNodesForBreakBefore( return true; } - CXFA_Node* pBreakAfterNode = - pContainerNode->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pBreakAfterNode = pContainerNode->GetFirstChild(); return FindBreakNode(pBreakAfterNode, pCurActionNode, &nCurStage, false); } @@ -2141,7 +2129,7 @@ void CXFA_ItemLayoutProcessor::ProcessUnUseOverFlow( if (pFormNode->GetElementType() == XFA_Element::Overflow || pFormNode->GetElementType() == XFA_Element::Break) { - pFormNode = pFormNode->GetNodeItem(XFA_NODEITEM_Parent); + pFormNode = pFormNode->GetParent(); } if (pLeaderNode && pFormNode) pFormNode->RemoveChild(pLeaderNode, true); @@ -2179,7 +2167,7 @@ XFA_ItemLayoutProcessorResult CXFA_ItemLayoutProcessor::DoLayoutFlowedContainer( containerSize.height -= m_fUsedSize; if (!bContainerHeightAutoSize) { - CXFA_Node* pParentNode = m_pFormNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParentNode = m_pFormNode->GetParent(); bool bFocrTb = false; if (pParentNode && GetLayout(pParentNode, &bFocrTb) == XFA_AttributeEnum::Row) { @@ -2367,8 +2355,8 @@ XFA_ItemLayoutProcessorResult CXFA_ItemLayoutProcessor::DoLayoutFlowedContainer( AddPendingNode(this, pLeaderNode, true); if (JudgeLeaderOrTrailerForOccur(pTrailerNode)) { - if (m_pFormNode->GetNodeItem(XFA_NODEITEM_Parent) - ->GetElementType() == XFA_Element::Form && + if (m_pFormNode->GetParent()->GetElementType() == + XFA_Element::Form && !m_pLayoutItem) { AddPendingNode(this, pTrailerNode, true); } else { @@ -2752,11 +2740,11 @@ bool CXFA_ItemLayoutProcessor::CalculateRowChildPosition( CXFA_Node* CXFA_ItemLayoutProcessor::GetSubformSetParent( CXFA_Node* pSubformSet) { if (pSubformSet && pSubformSet->GetElementType() == XFA_Element::SubformSet) { - CXFA_Node* pParent = pSubformSet->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParent = pSubformSet->GetParent(); while (pParent) { if (pParent->GetElementType() != XFA_Element::SubformSet) return pParent; - pParent = pParent->GetNodeItem(XFA_NODEITEM_Parent); + pParent = pParent->GetParent(); } } return pSubformSet; diff --git a/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp b/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp index 93822521ef..c1947cf9cc 100644 --- a/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp +++ b/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp @@ -311,9 +311,8 @@ bool CXFA_LayoutPageMgr::InitLayoutPage(CXFA_Node* pFormNode) { InitPageSetMap(); CXFA_Node* pPageArea = nullptr; int32_t iCount = 0; - for (pPageArea = m_pTemplatePageSetRoot->GetNodeItem(XFA_NODEITEM_FirstChild); - pPageArea; - pPageArea = pPageArea->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (pPageArea = m_pTemplatePageSetRoot->GetFirstChild(); pPageArea; + pPageArea = pPageArea->GetNextSibling()) { if (pPageArea->GetElementType() == XFA_Element::PageArea) { iCount++; if (pPageArea->GetFirstChildByClass( @@ -377,10 +376,8 @@ bool CXFA_LayoutPageMgr::PrepareFirstPage(CXFA_Node* pRootSubform) { bool bProBreakBefore = false; CXFA_Node* pBreakBeforeNode = nullptr; while (pRootSubform) { - for (CXFA_Node* pBreakNode = - pRootSubform->GetNodeItem(XFA_NODEITEM_FirstChild); - pBreakNode; - pBreakNode = pBreakNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pBreakNode = pRootSubform->GetFirstChild(); pBreakNode; + pBreakNode = pBreakNode->GetNextSibling()) { XFA_Element eType = pBreakNode->GetElementType(); if (eType == XFA_Element::BreakBefore || (eType == XFA_Element::Break && @@ -510,7 +507,7 @@ CXFA_ContainerRecord* CXFA_LayoutPageMgr::CreateContainerRecord( m_ProposedContainerRecords.push_back(pNewRecord); return pNewRecord; } - CXFA_Node* pPageSet = pPageNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pPageSet = pPageNode->GetParent(); if (!bCreateNew) { if (pPageSet == m_pTemplatePageSetRoot) { pNewRecord->pCurPageSet = m_pPageSetCurRoot; @@ -530,9 +527,7 @@ CXFA_ContainerRecord* CXFA_LayoutPageMgr::CreateContainerRecord( GetCurrentContainerRecord()->pCurPageSet->m_pParent); } else { pParentPageSetLayout = static_cast( - pPageSet->GetNodeItem(XFA_NODEITEM_Parent) - ->JSObject() - ->GetLayoutItem()); + pPageSet->GetParent()->JSObject()->GetLayoutItem()); } CXFA_ContainerLayoutItem* pPageSetLayoutItem = new CXFA_ContainerLayoutItem(pPageSet); @@ -553,7 +548,7 @@ CXFA_ContainerRecord* CXFA_LayoutPageMgr::CreateContainerRecord( } } else { if (pPageNode) { - CXFA_Node* pPageSet = pPageNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pPageSet = pPageNode->GetParent(); if (pPageSet == m_pTemplatePageSetRoot) { pNewRecord->pCurPageSet = m_pPageSetLayoutItemRoot; } else { @@ -692,11 +687,9 @@ void CXFA_LayoutPageMgr::FinishPaginatedPageSets() { rgUsedHeights.push_back(fUsedHeight); } int32_t iCurContentAreaIndex = -1; - for (CXFA_Node* pContentAreaNode = - pNode->GetNodeItem(XFA_NODEITEM_FirstChild); + for (CXFA_Node* pContentAreaNode = pNode->GetFirstChild(); pContentAreaNode; - pContentAreaNode = - pContentAreaNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + pContentAreaNode = pContentAreaNode->GetNextSibling()) { if (pContentAreaNode->GetElementType() != XFA_Element::ContentArea) { continue; @@ -714,8 +707,7 @@ void CXFA_LayoutPageMgr::FinishPaginatedPageSets() { if (bUsable) { CXFA_LayoutItem* pChildLayoutItem = pLastPageAreaLayoutItem->m_pFirstChild; - CXFA_Node* pContentAreaNode = - pNode->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pContentAreaNode = pNode->GetFirstChild(); pLastPageAreaLayoutItem->m_pFormNode = pNode; while (pChildLayoutItem && pContentAreaNode) { if (pChildLayoutItem->m_pFormNode->GetElementType() != @@ -725,14 +717,12 @@ void CXFA_LayoutPageMgr::FinishPaginatedPageSets() { } if (pContentAreaNode->GetElementType() != XFA_Element::ContentArea) { - pContentAreaNode = - pContentAreaNode->GetNodeItem(XFA_NODEITEM_NextSibling); + pContentAreaNode = pContentAreaNode->GetNextSibling(); continue; } pChildLayoutItem->m_pFormNode = pContentAreaNode; pChildLayoutItem = pChildLayoutItem->m_pNextSibling; - pContentAreaNode = - pContentAreaNode->GetNodeItem(XFA_NODEITEM_NextSibling); + pContentAreaNode = pContentAreaNode->GetNextSibling(); } } else if (pNode->JSObject()->GetEnum(XFA_Attribute::PagePosition) == XFA_AttributeEnum::Last) { @@ -777,7 +767,7 @@ bool CXFA_LayoutPageMgr::RunBreak(XFA_Element eBreakType, bStartNew) { CXFA_Node* pPageArea = nullptr; if (pTarget) - pPageArea = pTarget->GetNodeItem(XFA_NODEITEM_Parent); + pPageArea = pTarget->GetParent(); pPageArea = GetNextAvailPageArea(pPageArea, pTarget); bRet = !!pPageArea; @@ -856,7 +846,7 @@ bool CXFA_LayoutPageMgr::ExecuteBreakBeforeOrAfter( XFA_ObjectType::ContainerNode)) { break; } - pParentNode = pParentNode->GetNodeItem(XFA_NODEITEM_Parent); + pParentNode = pParentNode->GetParent(); if (!pParentNode || pParentNode->GetElementType() != XFA_Element::Form) { break; @@ -1047,14 +1037,13 @@ bool CXFA_LayoutPageMgr::ProcessOverflow(CXFA_Node* pFormNode, pFormNode->GetElementType() == XFA_Element::Break) { bIsOverflowNode = true; } - for (CXFA_Node* pCurNode = - bIsOverflowNode ? pFormNode - : pFormNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pCurNode; pCurNode = pCurNode->GetNodeItem((XFA_NODEITEM_NextSibling))) { + for (CXFA_Node* pCurNode = bIsOverflowNode ? pFormNode + : pFormNode->GetFirstChild(); + pCurNode; pCurNode = pCurNode->GetNextSibling()) { if (BreakOverflow(pCurNode, pLeaderTemplate, pTrailerTemplate, bCreatePage)) { if (bIsOverflowNode) - pFormNode = pCurNode->GetNodeItem(XFA_NODEITEM_Parent); + pFormNode = pCurNode->GetParent(); CXFA_Document* pDocument = pCurNode->GetDocument(); CXFA_Node* pDataScope = nullptr; @@ -1162,10 +1151,8 @@ bool CXFA_LayoutPageMgr::FindPageAreaFromPageSet_Ordered( bool bRes = false; CXFA_Node* pCurrentNode = - pStartChild ? pStartChild->GetNodeItem(XFA_NODEITEM_NextSibling) - : pPageSet->GetNodeItem(XFA_NODEITEM_FirstChild); - for (; pCurrentNode; - pCurrentNode = pCurrentNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + pStartChild ? pStartChild->GetNextSibling() : pPageSet->GetFirstChild(); + for (; pCurrentNode; pCurrentNode = pCurrentNode->GetNextSibling()) { if (pCurrentNode->GetElementType() == XFA_Element::PageArea) { if ((pTargetPageArea == pCurrentNode || !pTargetPageArea)) { if (!pCurrentNode->GetFirstChildByClass( @@ -1223,12 +1210,11 @@ bool CXFA_LayoutPageMgr::FindPageAreaFromPageSet_SimplexDuplex( CXFA_Node* pFallbackPageArea = nullptr; CXFA_Node* pCurrentNode = nullptr; if (!pStartChild || pStartChild->GetElementType() == XFA_Element::PageArea) - pCurrentNode = pPageSet->GetNodeItem(XFA_NODEITEM_FirstChild); + pCurrentNode = pPageSet->GetFirstChild(); else - pCurrentNode = pStartChild->GetNodeItem(XFA_NODEITEM_NextSibling); + pCurrentNode = pStartChild->GetNextSibling(); - for (; pCurrentNode; - pCurrentNode = pCurrentNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (; pCurrentNode; pCurrentNode = pCurrentNode->GetNextSibling()) { if (pCurrentNode->GetElementType() == XFA_Element::PageArea) { if (!MatchPageAreaOddOrEven(pCurrentNode)) continue; @@ -1379,13 +1365,13 @@ CXFA_Node* CXFA_LayoutPageMgr::GetNextAvailPageArea( if (!bQuery && IsPageSetRootOrderedOccurrence()) CreateMinPageRecord(m_pCurPageArea, false, true); - if (FindPageAreaFromPageSet(m_pCurPageArea->GetNodeItem(XFA_NODEITEM_Parent), - m_pCurPageArea, pTargetPageArea, - pTargetContentArea, bNewPage, bQuery)) { + if (FindPageAreaFromPageSet(m_pCurPageArea->GetParent(), m_pCurPageArea, + pTargetPageArea, pTargetContentArea, bNewPage, + bQuery)) { return m_pCurPageArea; } - CXFA_Node* pPageSet = m_pCurPageArea->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pPageSet = m_pCurPageArea->GetParent(); while (true) { if (FindPageAreaFromPageSet(pPageSet, nullptr, pTargetPageArea, pTargetContentArea, bNewPage, bQuery)) { @@ -1400,7 +1386,7 @@ CXFA_Node* CXFA_LayoutPageMgr::GetNextAvailPageArea( if (pPageSet == m_pTemplatePageSetRoot) break; - pPageSet = pPageSet->GetNodeItem(XFA_NODEITEM_Parent); + pPageSet = pPageSet->GetParent(); } return nullptr; } @@ -1414,7 +1400,7 @@ bool CXFA_LayoutPageMgr::GetNextContentArea(CXFA_Node* pContentArea) { if (!pContentArea) return false; } else { - if (pContentArea->GetNodeItem(XFA_NODEITEM_Parent) != m_pCurPageArea) + if (pContentArea->GetParent() != m_pCurPageArea) return false; CXFA_ContainerLayoutItem* pContentAreaLayout = nullptr; @@ -1513,8 +1499,8 @@ void CXFA_LayoutPageMgr::CreateMinPageSetRecord(CXFA_Node* pPageSet, return; for (int32_t i = 0; i < *iMin - iCurSetCount; i++) { - for (CXFA_Node* node = pPageSet->GetNodeItem(XFA_NODEITEM_FirstChild); node; - node = node->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* node = pPageSet->GetFirstChild(); node; + node = node->GetNextSibling()) { if (node->GetElementType() == XFA_Element::PageArea) CreateMinPageRecord(node, false); else if (node->GetElementType() == XFA_Element::PageSet) @@ -1528,10 +1514,8 @@ void CXFA_LayoutPageMgr::CreateNextMinRecord(CXFA_Node* pRecordNode) { if (!pRecordNode) return; - for (CXFA_Node* pCurrentNode = - pRecordNode->GetNodeItem(XFA_NODEITEM_NextSibling); - pCurrentNode; - pCurrentNode = pCurrentNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pCurrentNode = pRecordNode->GetNextSibling(); pCurrentNode; + pCurrentNode = pCurrentNode->GetNextSibling()) { if (pCurrentNode->GetElementType() == XFA_Element::PageArea) CreateMinPageRecord(pCurrentNode, false); else if (pCurrentNode->GetElementType() == XFA_Element::PageSet) @@ -1542,14 +1526,14 @@ void CXFA_LayoutPageMgr::CreateNextMinRecord(CXFA_Node* pRecordNode) { void CXFA_LayoutPageMgr::ProcessLastPageSet() { CreateMinPageRecord(m_pCurPageArea, false, true); CreateNextMinRecord(m_pCurPageArea); - CXFA_Node* pPageSet = m_pCurPageArea->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pPageSet = m_pCurPageArea->GetParent(); while (true) { CreateMinPageSetRecord(pPageSet); if (pPageSet == m_pTemplatePageSetRoot) break; CreateNextMinRecord(pPageSet); - pPageSet = pPageSet->GetNodeItem(XFA_NODEITEM_Parent); + pPageSet = pPageSet->GetParent(); } } @@ -1686,8 +1670,8 @@ void CXFA_LayoutPageMgr::SaveLayoutItem(CXFA_LayoutItem* pParentLayoutItem) { } CXFA_Node* CXFA_LayoutPageMgr::QueryOverflow(CXFA_Node* pFormNode) { - for (CXFA_Node* pCurNode = pFormNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pCurNode; pCurNode = pCurNode->GetNodeItem((XFA_NODEITEM_NextSibling))) { + for (CXFA_Node* pCurNode = pFormNode->GetFirstChild(); pCurNode; + pCurNode = pCurNode->GetNextSibling()) { if (pCurNode->GetElementType() == XFA_Element::Break) { WideString wsOverflowLeader = pCurNode->JSObject()->GetCData(XFA_Attribute::OverflowLeader); @@ -1826,10 +1810,8 @@ void CXFA_LayoutPageMgr::MergePageSetContents() { } case XFA_Element::ContentArea: { CXFA_Node* pParentNode = pContainerItem->m_pParent->m_pFormNode; - for (CXFA_Node* pChildNode = - pParentNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pChildNode; - pChildNode = pChildNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pChildNode = pParentNode->GetFirstChild(); pChildNode; + pChildNode = pChildNode->GetNextSibling()) { if (pChildNode->GetTemplateNode() != pContainerItem->m_pFormNode) { continue; } @@ -1842,7 +1824,7 @@ void CXFA_LayoutPageMgr::MergePageSetContents() { break; } } - if (!pPendingPageSet->GetNodeItem(XFA_NODEITEM_Parent)) { + if (!pPendingPageSet->GetParent()) { CXFA_Node* pFormToplevelSubform = pDocument->GetXFAObject(XFA_HASHCODE_Form) ->AsNode() @@ -1883,7 +1865,7 @@ void CXFA_LayoutPageMgr::MergePageSetContents() { } } CXFA_Node* pNext = sIterator.SkipChildrenAndMoveToNext(); - pNode->GetNodeItem(XFA_NODEITEM_Parent)->RemoveChild(pNode, true); + pNode->GetParent()->RemoveChild(pNode, true); pNode = pNext; } else { pNode->ClearFlag(XFA_NodeFlag_UnusedNode); @@ -2020,8 +2002,7 @@ void CXFA_LayoutPageMgr::PrepareLayout() { CXFA_Node* pNextPageSet = pPageSetFormNode->GetNextSameClassSibling( XFA_Element::PageSet); - pPageSetFormNode->GetNodeItem(XFA_NODEITEM_Parent) - ->RemoveChild(pPageSetFormNode, false); + pPageSetFormNode->GetParent()->RemoveChild(pPageSetFormNode, false); pRootLayoutItem->m_pFormNode->GetDocument()->m_pPendingPageSet.push_back( pPageSetFormNode); pPageSetFormNode = pNextPageSet; diff --git a/xfa/fxfa/parser/cxfa_localemgr.cpp b/xfa/fxfa/parser/cxfa_localemgr.cpp index 323a63dd72..cbe709fb20 100644 --- a/xfa/fxfa/parser/cxfa_localemgr.cpp +++ b/xfa/fxfa/parser/cxfa_localemgr.cpp @@ -1130,10 +1130,10 @@ CXFA_LocaleMgr::CXFA_LocaleMgr(CXFA_Node* pLocaleSet, WideString wsDeflcid) : m_dwLocaleFlags(0x00) { m_dwDeflcid = XFA_GetLanguage(wsDeflcid); if (pLocaleSet) { - CXFA_Node* pNodeLocale = pLocaleSet->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pNodeLocale = pLocaleSet->GetFirstChild(); while (pNodeLocale) { m_LocaleArray.push_back(pdfium::MakeUnique(pNodeLocale)); - pNodeLocale = pNodeLocale->GetNodeItem(XFA_NODEITEM_NextSibling); + pNodeLocale = pNodeLocale->GetNextSibling(); } } m_pDefLocale = GetLocaleByName(wsDeflcid); diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp index e3ece5d57a..ad70e94256 100644 --- a/xfa/fxfa/parser/cxfa_node.cpp +++ b/xfa/fxfa/parser/cxfa_node.cpp @@ -65,10 +65,9 @@ std::vector NodesSortedByDocumentIdx( return std::vector(); std::vector rgNodeArray; - CXFA_Node* pCommonParent = - (*rgNodeSet.begin())->GetNodeItem(XFA_NODEITEM_Parent); - for (CXFA_Node* pNode = pCommonParent->GetNodeItem(XFA_NODEITEM_FirstChild); - pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + CXFA_Node* pCommonParent = (*rgNodeSet.begin())->GetParent(); + for (CXFA_Node* pNode = pCommonParent->GetFirstChild(); pNode; + pNode = pNode->GetNextSibling()) { if (pdfium::ContainsValue(rgNodeSet, pNode)) rgNodeArray.push_back(pNode); } @@ -83,7 +82,7 @@ using CXFA_NodeSetPairMapMap = CXFA_NodeSetPair* NodeSetPairForNode(CXFA_Node* pNode, CXFA_NodeSetPairMapMap* pMap) { - CXFA_Node* pParentNode = pNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParentNode = pNode->GetParent(); uint32_t dwNameHash = pNode->GetNameHash(); if (!pParentNode || !dwNameHash) return nullptr; @@ -134,11 +133,11 @@ void ReorderDataNodes(const std::set& sSet1, CXFA_Node* pBeforeNode = nullptr; if (bInsertBefore) { pBeforeNode = rgNodeArray2.front(); - pParentNode = pBeforeNode->GetNodeItem(XFA_NODEITEM_Parent); + pParentNode = pBeforeNode->GetParent(); } else { CXFA_Node* pLastNode = rgNodeArray2.back(); - pParentNode = pLastNode->GetNodeItem(XFA_NODEITEM_Parent); - pBeforeNode = pLastNode->GetNodeItem(XFA_NODEITEM_NextSibling); + pParentNode = pLastNode->GetParent(); + pBeforeNode = pLastNode->GetNextSibling(); } for (auto* pCurNode : rgNodeArray1) { pParentNode->RemoveChild(pCurNode, true); @@ -257,8 +256,8 @@ CXFA_Node* CXFA_Node::Clone(bool bRecursive) { pClone->SetFlag(XFA_NodeFlag_OwnXMLNode, false); } if (bRecursive) { - for (CXFA_Node* pChild = GetNodeItem(XFA_NODEITEM_FirstChild); pChild; - pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pChild = GetFirstChild(); pChild; + pChild = pChild->GetNextSibling()) { pClone->InsertChild(pChild->Clone(bRecursive), nullptr); } } @@ -267,29 +266,51 @@ CXFA_Node* CXFA_Node::Clone(bool bRecursive) { return pClone; } -CXFA_Node* CXFA_Node::GetNodeItem(XFA_NODEITEM eItem) const { +CXFA_Node* CXFA_Node::GetPrevSibling() const { + if (!m_pParent || m_pParent->m_pChild == this) + return nullptr; + + for (CXFA_Node* pNode = m_pParent->m_pChild; pNode; pNode = pNode->m_pNext) { + if (pNode->m_pNext == this) + return pNode; + } + return nullptr; +} + +CXFA_Node* CXFA_Node::GetNodeItem(XFA_NODEITEM eItem, + XFA_ObjectType eType) const { + CXFA_Node* pNode = nullptr; switch (eItem) { case XFA_NODEITEM_NextSibling: - return m_pNext; + pNode = m_pNext; + while (pNode && pNode->GetObjectType() != eType) + pNode = pNode->m_pNext; + break; case XFA_NODEITEM_FirstChild: - return m_pChild; + pNode = m_pChild; + while (pNode && pNode->GetObjectType() != eType) + pNode = pNode->m_pNext; + break; case XFA_NODEITEM_Parent: - return m_pParent; + pNode = m_pParent; + while (pNode && pNode->GetObjectType() != eType) + pNode = pNode->m_pParent; + break; case XFA_NODEITEM_PrevSibling: if (m_pParent) { CXFA_Node* pSibling = m_pParent->m_pChild; - CXFA_Node* pPrev = nullptr; while (pSibling && pSibling != this) { - pPrev = pSibling; + if (eType == pSibling->GetObjectType()) + pNode = pSibling; + pSibling = pSibling->m_pNext; } - return pPrev; } - return nullptr; + break; default: break; } - return nullptr; + return pNode; } bool CXFA_Node::IsValidInPacket(XFA_PacketType packet) const { @@ -370,42 +391,6 @@ XFA_AttributeType CXFA_Node::GetAttributeType(XFA_Attribute type) const { return data ? data->type : XFA_AttributeType::CData; } -CXFA_Node* CXFA_Node::GetNodeItem(XFA_NODEITEM eItem, - XFA_ObjectType eType) const { - CXFA_Node* pNode = nullptr; - switch (eItem) { - case XFA_NODEITEM_NextSibling: - pNode = m_pNext; - while (pNode && pNode->GetObjectType() != eType) - pNode = pNode->m_pNext; - break; - case XFA_NODEITEM_FirstChild: - pNode = m_pChild; - while (pNode && pNode->GetObjectType() != eType) - pNode = pNode->m_pNext; - break; - case XFA_NODEITEM_Parent: - pNode = m_pParent; - while (pNode && pNode->GetObjectType() != eType) - pNode = pNode->m_pParent; - break; - case XFA_NODEITEM_PrevSibling: - if (m_pParent) { - CXFA_Node* pSibling = m_pParent->m_pChild; - while (pSibling && pSibling != this) { - if (eType == pSibling->GetObjectType()) - pNode = pSibling; - - pSibling = pSibling->m_pNext; - } - } - break; - default: - break; - } - return pNode; -} - std::vector CXFA_Node::GetNodeList(uint32_t dwTypeFilter, XFA_Element eTypeFilter) { if (eTypeFilter != XFA_Element::Unknown) { @@ -485,8 +470,8 @@ CXFA_Node* CXFA_Node::CloneTemplateToForm(bool bRecursive) { pClone->UpdateNameHash(); pClone->SetXMLMappingNode(GetXMLMappingNode()); if (bRecursive) { - for (CXFA_Node* pChild = GetNodeItem(XFA_NODEITEM_FirstChild); pChild; - pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pChild = GetFirstChild(); pChild; + pChild = pChild->GetNextSibling()) { pClone->InsertChild(pChild->CloneTemplateToForm(bRecursive), nullptr); } } @@ -578,7 +563,7 @@ CXFA_WidgetAcc* CXFA_Node::GetContainerWidgetAcc() { XFA_Element eType = GetElementType(); if (eType == XFA_Element::ExclGroup) return nullptr; - CXFA_Node* pParentNode = GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParentNode = GetParent(); if (pParentNode && pParentNode->GetElementType() == XFA_Element::ExclGroup) return nullptr; @@ -613,8 +598,7 @@ CXFA_WidgetAcc* CXFA_Node::GetContainerWidgetAcc() { return pFieldWidgetAcc; } - CXFA_Node* pGrandNode = - pParentNode ? pParentNode->GetNodeItem(XFA_NODEITEM_Parent) : nullptr; + CXFA_Node* pGrandNode = pParentNode ? pParentNode->GetParent() : nullptr; CXFA_Node* pValueNode = (pParentNode && pParentNode->GetElementType() == XFA_Element::Value) ? pParentNode @@ -626,7 +610,7 @@ CXFA_WidgetAcc* CXFA_Node::GetContainerWidgetAcc() { : nullptr; } CXFA_Node* pParentOfValueNode = - pValueNode ? pValueNode->GetNodeItem(XFA_NODEITEM_Parent) : nullptr; + pValueNode ? pValueNode->GetParent() : nullptr; return pParentOfValueNode ? pParentOfValueNode->GetContainerWidgetAcc() : nullptr; } @@ -653,7 +637,7 @@ Optional CXFA_Node::GetLocaleName() { if (localeName) return localeName; - pLocaleNode = pLocaleNode->GetNodeItem(XFA_NODEITEM_Parent); + pLocaleNode = pLocaleNode->GetParent(); } while (pLocaleNode && pLocaleNode != pTopSubform); CXFA_Node* pConfig = ToNode(GetDocument()->GetXFAObject(XFA_HASHCODE_Config)); @@ -725,7 +709,7 @@ XFA_AttributeEnum CXFA_Node::GetIntact() { return XFA_AttributeEnum::None; } case XFA_Element::Field: { - CXFA_Node* parent = GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* parent = GetParent(); if (!parent || parent->GetElementType() == XFA_Element::PageArea) return XFA_AttributeEnum::ContentArea; if (parent->GetIntact() != XFA_AttributeEnum::None) @@ -794,8 +778,7 @@ CXFA_Node* CXFA_Node::GetModelNode() { size_t CXFA_Node::CountChildren(XFA_Element eType, bool bOnlyChild) { size_t count = 0; - for (CXFA_Node* pNode = m_pChild; pNode; - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pNode = m_pChild; pNode; pNode = pNode->GetNextSibling()) { if (pNode->GetElementType() != eType && eType != XFA_Element::Unknown) continue; if (bOnlyChild && HasProperty(pNode->GetElementType())) @@ -809,8 +792,7 @@ CXFA_Node* CXFA_Node::GetChildInternal(size_t index, XFA_Element eType, bool bOnlyChild) { size_t count = 0; - for (CXFA_Node* pNode = m_pChild; pNode; - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pNode = m_pChild; pNode; pNode = pNode->GetNextSibling()) { if (pNode->GetElementType() != eType && eType != XFA_Element::Unknown) continue; if (bOnlyChild && HasProperty(pNode->GetElementType())) @@ -991,8 +973,8 @@ CXFA_Node* CXFA_Node::GetFirstChildByName(const WideStringView& wsName) const { } CXFA_Node* CXFA_Node::GetFirstChildByName(uint32_t dwNameHash) const { - for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_FirstChild); pNode; - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pNode = GetFirstChild(); pNode; + pNode = pNode->GetNextSibling()) { if (pNode->GetNameHash() == dwNameHash) { return pNode; } @@ -1001,8 +983,8 @@ CXFA_Node* CXFA_Node::GetFirstChildByName(uint32_t dwNameHash) const { } CXFA_Node* CXFA_Node::GetFirstChildByClassInternal(XFA_Element eType) const { - for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_FirstChild); pNode; - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pNode = GetFirstChild(); pNode; + pNode = pNode->GetNextSibling()) { if (pNode->GetElementType() == eType) { return pNode; } @@ -1011,8 +993,8 @@ CXFA_Node* CXFA_Node::GetFirstChildByClassInternal(XFA_Element eType) const { } CXFA_Node* CXFA_Node::GetNextSameNameSibling(uint32_t dwNameHash) const { - for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_NextSibling); pNode; - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pNode = GetNextSibling(); pNode; + pNode = pNode->GetNextSibling()) { if (pNode->GetNameHash() == dwNameHash) { return pNode; } @@ -1026,8 +1008,8 @@ CXFA_Node* CXFA_Node::GetNextSameNameSiblingInternal( } CXFA_Node* CXFA_Node::GetNextSameClassSiblingInternal(XFA_Element eType) const { - for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_NextSibling); pNode; - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pNode = GetNextSibling(); pNode; + pNode = pNode->GetNextSibling()) { if (pNode->GetElementType() == eType) { return pNode; } @@ -1054,12 +1036,12 @@ int32_t CXFA_Node::GetNodeSameClassIndex() const { CXFA_Node* CXFA_Node::GetInstanceMgrOfSubform() { CXFA_Node* pInstanceMgr = nullptr; if (m_ePacket == XFA_PacketType::Form) { - CXFA_Node* pParentNode = GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParentNode = GetParent(); if (!pParentNode || pParentNode->GetElementType() == XFA_Element::Area) { return pInstanceMgr; } - for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_PrevSibling); pNode; - pNode = pNode->GetNodeItem(XFA_NODEITEM_PrevSibling)) { + for (CXFA_Node* pNode = GetPrevSibling(); pNode; + pNode = pNode->GetPrevSibling()) { XFA_Element eType = pNode->GetElementType(); if ((eType == XFA_Element::Subform || eType == XFA_Element::SubformSet) && pNode->m_dwNameHash != m_dwNameHash) { @@ -1152,8 +1134,8 @@ bool CXFA_Node::IsNeedSavingXMLNode() { CXFA_Node* CXFA_Node::GetItem(int32_t iIndex) { int32_t iCount = 0; uint32_t dwNameHash = 0; - for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_NextSibling); pNode; - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pNode = GetNextSibling(); pNode; + pNode = pNode->GetNextSibling()) { XFA_Element eCurType = pNode->GetElementType(); if (eCurType == XFA_Element::InstanceManager) break; @@ -1183,8 +1165,8 @@ CXFA_Node* CXFA_Node::GetItem(int32_t iIndex) { int32_t CXFA_Node::GetCount() { int32_t iCount = 0; uint32_t dwNameHash = 0; - for (CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_NextSibling); pNode; - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pNode = GetNextSibling(); pNode; + pNode = pNode->GetNextSibling()) { XFA_Element eCurType = pNode->GetElementType(); if (eCurType == XFA_Element::InstanceManager) break; @@ -1219,9 +1201,8 @@ void CXFA_Node::InsertItem(CXFA_Node* pNewInstance, iPos = iCount; if (iPos == iCount) { CXFA_Node* pNextSibling = - iCount > 0 ? GetItem(iCount - 1)->GetNodeItem(XFA_NODEITEM_NextSibling) - : GetNodeItem(XFA_NODEITEM_NextSibling); - GetNodeItem(XFA_NODEITEM_Parent)->InsertChild(pNewInstance, pNextSibling); + iCount > 0 ? GetItem(iCount - 1)->GetNextSibling() : GetNextSibling(); + GetParent()->InsertChild(pNewInstance, pNextSibling); if (bMoveDataBindingNodes) { std::set sNew; std::set sAfter; @@ -1251,8 +1232,7 @@ void CXFA_Node::InsertItem(CXFA_Node* pNewInstance, } } else { CXFA_Node* pBeforeInstance = GetItem(iPos); - GetNodeItem(XFA_NODEITEM_Parent) - ->InsertChild(pNewInstance, pBeforeInstance); + GetParent()->InsertChild(pNewInstance, pBeforeInstance); if (bMoveDataBindingNodes) { std::set sNew; std::set sBefore; @@ -1285,7 +1265,7 @@ void CXFA_Node::InsertItem(CXFA_Node* pNewInstance, void CXFA_Node::RemoveItem(CXFA_Node* pRemoveInstance, bool bRemoveDataBinding) { - GetNodeItem(XFA_NODEITEM_Parent)->RemoveChild(pRemoveInstance, true); + GetParent()->RemoveChild(pRemoveInstance, true); if (!bRemoveDataBinding) return; @@ -1298,8 +1278,7 @@ void CXFA_Node::RemoveItem(CXFA_Node* pRemoveInstance, continue; if (pDataNode->RemoveBindItem(pFormNode) == 0) { - if (CXFA_Node* pDataParent = - pDataNode->GetNodeItem(XFA_NODEITEM_Parent)) { + if (CXFA_Node* pDataParent = pDataNode->GetParent()) { pDataParent->RemoveChild(pDataNode, true); } } @@ -1310,11 +1289,11 @@ void CXFA_Node::RemoveItem(CXFA_Node* pRemoveInstance, CXFA_Node* CXFA_Node::CreateInstance(bool bDataMerge) { CXFA_Document* pDocument = GetDocument(); CXFA_Node* pTemplateNode = GetTemplateNode(); - CXFA_Node* pFormParent = GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pFormParent = GetParent(); CXFA_Node* pDataScope = nullptr; for (CXFA_Node* pRootBoundNode = pFormParent; pRootBoundNode && pRootBoundNode->IsContainerNode(); - pRootBoundNode = pRootBoundNode->GetNodeItem(XFA_NODEITEM_Parent)) { + pRootBoundNode = pRootBoundNode->GetParent()) { pDataScope = pRootBoundNode->GetBindData(); if (pDataScope) break; @@ -1401,16 +1380,15 @@ void CXFA_Node::SendAttributeChangeMessage(XFA_Attribute eAttribute, switch (GetElementType()) { case XFA_Element::Caption: bNeedFindContainer = true; - pNotify->OnValueChanged(this, eAttribute, this, - GetNodeItem(XFA_NODEITEM_Parent)); + pNotify->OnValueChanged(this, eAttribute, this, GetParent()); break; case XFA_Element::Font: case XFA_Element::Para: { bNeedFindContainer = true; - CXFA_Node* pParentNode = GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParentNode = GetParent(); if (pParentNode->GetElementType() == XFA_Element::Caption) { pNotify->OnValueChanged(this, eAttribute, pParentNode, - pParentNode->GetNodeItem(XFA_NODEITEM_Parent)); + pParentNode->GetParent()); } else { pNotify->OnValueChanged(this, eAttribute, this, pParentNode); } @@ -1418,32 +1396,31 @@ void CXFA_Node::SendAttributeChangeMessage(XFA_Attribute eAttribute, } case XFA_Element::Margin: { bNeedFindContainer = true; - CXFA_Node* pParentNode = GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParentNode = GetParent(); XFA_Element eParentType = pParentNode->GetElementType(); if (pParentNode->IsContainerNode()) { pNotify->OnValueChanged(this, eAttribute, this, pParentNode); } else if (eParentType == XFA_Element::Caption) { pNotify->OnValueChanged(this, eAttribute, pParentNode, - pParentNode->GetNodeItem(XFA_NODEITEM_Parent)); + pParentNode->GetParent()); } else { - CXFA_Node* pNode = pParentNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pNode = pParentNode->GetParent(); if (pNode && pNode->GetElementType() == XFA_Element::Ui) { - pNotify->OnValueChanged(this, eAttribute, pNode, - pNode->GetNodeItem(XFA_NODEITEM_Parent)); + pNotify->OnValueChanged(this, eAttribute, pNode, pNode->GetParent()); } } break; } case XFA_Element::Comb: { - CXFA_Node* pEditNode = GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pEditNode = GetParent(); XFA_Element eUIType = pEditNode->GetElementType(); if (pEditNode && (eUIType == XFA_Element::DateTimeEdit || eUIType == XFA_Element::NumericEdit || eUIType == XFA_Element::TextEdit)) { - CXFA_Node* pUINode = pEditNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pUINode = pEditNode->GetParent(); if (pUINode) { pNotify->OnValueChanged(this, eAttribute, pUINode, - pUINode->GetNodeItem(XFA_NODEITEM_Parent)); + pUINode->GetParent()); } } break; @@ -1455,19 +1432,19 @@ void CXFA_Node::SendAttributeChangeMessage(XFA_Attribute eAttribute, case XFA_Element::NumericEdit: case XFA_Element::PasswordEdit: case XFA_Element::TextEdit: { - CXFA_Node* pUINode = GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pUINode = GetParent(); if (pUINode) { pNotify->OnValueChanged(this, eAttribute, pUINode, - pUINode->GetNodeItem(XFA_NODEITEM_Parent)); + pUINode->GetParent()); } break; } case XFA_Element::CheckButton: { bNeedFindContainer = true; - CXFA_Node* pUINode = GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pUINode = GetParent(); if (pUINode) { pNotify->OnValueChanged(this, eAttribute, pUINode, - pUINode->GetNodeItem(XFA_NODEITEM_Parent)); + pUINode->GetParent()); } break; } @@ -1491,30 +1468,29 @@ void CXFA_Node::SendAttributeChangeMessage(XFA_Attribute eAttribute, case XFA_Element::Sharptext: case XFA_Element::Sharpxml: case XFA_Element::SharpxHTML: { - CXFA_Node* pTextNode = GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pTextNode = GetParent(); if (!pTextNode) return; - CXFA_Node* pValueNode = pTextNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pValueNode = pTextNode->GetParent(); if (!pValueNode) return; XFA_Element eType = pValueNode->GetElementType(); if (eType == XFA_Element::Value) { bNeedFindContainer = true; - CXFA_Node* pNode = pValueNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pNode = pValueNode->GetParent(); if (pNode && pNode->IsContainerNode()) { if (bScriptModify) pValueNode = pNode; pNotify->OnValueChanged(this, eAttribute, pValueNode, pNode); } else { - pNotify->OnValueChanged(this, eAttribute, pNode, - pNode->GetNodeItem(XFA_NODEITEM_Parent)); + pNotify->OnValueChanged(this, eAttribute, pNode, pNode->GetParent()); } } else { if (eType == XFA_Element::Items) { - CXFA_Node* pNode = pValueNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pNode = pValueNode->GetParent(); if (pNode && pNode->IsContainerNode()) { pNotify->OnValueChanged(this, eAttribute, pValueNode, pNode); } @@ -1531,7 +1507,7 @@ void CXFA_Node::SendAttributeChangeMessage(XFA_Attribute eAttribute, CXFA_Node* pParent = this; while (pParent && !pParent->IsContainerNode()) - pParent = pParent->GetNodeItem(XFA_NODEITEM_Parent); + pParent = pParent->GetParent(); if (pParent) pLayoutPro->AddChangedContainer(pParent); @@ -1668,7 +1644,7 @@ Optional CXFA_Node::TryMaxHeight() { } CXFA_Node* CXFA_Node::GetExclGroup() { - CXFA_Node* pExcl = GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pExcl = GetParent(); if (!pExcl || pExcl->GetElementType() != XFA_Element::ExclGroup) return nullptr; return pExcl; diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h index 374e8e55bf..fe1c3e007f 100644 --- a/xfa/fxfa/parser/cxfa_node.h +++ b/xfa/fxfa/parser/cxfa_node.h @@ -182,7 +182,12 @@ class CXFA_Node : public CXFA_Object { bool RemoveChild(CXFA_Node* pNode, bool bNotify); CXFA_Node* Clone(bool bRecursive); - CXFA_Node* GetNodeItem(XFA_NODEITEM eItem) const; + + CXFA_Node* GetNextSibling() const { return m_pNext; } + CXFA_Node* GetPrevSibling() const; + CXFA_Node* GetFirstChild() const { return m_pChild; } + CXFA_Node* GetParent() const { return m_pParent; } + CXFA_Node* GetNodeItem(XFA_NODEITEM eItem, XFA_ObjectType eType) const; std::vector GetNodeList(uint32_t dwTypeFilter, diff --git a/xfa/fxfa/parser/cxfa_nodehelper.cpp b/xfa/fxfa/parser/cxfa_nodehelper.cpp index 98e4bdce42..6a090ffe96 100644 --- a/xfa/fxfa/parser/cxfa_nodehelper.cpp +++ b/xfa/fxfa/parser/cxfa_nodehelper.cpp @@ -181,7 +181,7 @@ CXFA_Node* CXFA_NodeHelper::ResolveNodes_GetParent(CXFA_Node* pNode, return nullptr; } if (eLogicType == XFA_LOGIC_NoTransparent) { - return pNode->GetNodeItem(XFA_NODEITEM_Parent); + return pNode->GetParent(); } CXFA_Node* parent; CXFA_Node* node = pNode; diff --git a/xfa/fxfa/parser/cxfa_nodelocale.cpp b/xfa/fxfa/parser/cxfa_nodelocale.cpp index 5031216de9..92a676a762 100644 --- a/xfa/fxfa/parser/cxfa_nodelocale.cpp +++ b/xfa/fxfa/parser/cxfa_nodelocale.cpp @@ -136,13 +136,12 @@ WideString CXFA_NodeLocale::GetNumPattern(FX_LOCALENUMSUBCATEGORY eType) const { CXFA_Node* CXFA_NodeLocale::GetNodeByName(CXFA_Node* pParent, const WideStringView& wsName) const { - CXFA_Node* pChild = - pParent ? pParent->GetNodeItem(XFA_NODEITEM_FirstChild) : nullptr; + CXFA_Node* pChild = pParent ? pParent->GetFirstChild() : nullptr; while (pChild) { if (pChild->JSObject()->GetAttribute(XFA_Attribute::Name) == wsName) return pChild; - pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling); + pChild = pChild->GetNextSibling(); } return nullptr; } diff --git a/xfa/fxfa/parser/cxfa_traversestrategy_xfanode.h b/xfa/fxfa/parser/cxfa_traversestrategy_xfanode.h index 7fab43c9bc..fc98d18623 100644 --- a/xfa/fxfa/parser/cxfa_traversestrategy_xfanode.h +++ b/xfa/fxfa/parser/cxfa_traversestrategy_xfanode.h @@ -12,13 +12,13 @@ class CXFA_TraverseStrategy_XFANode { public: static inline CXFA_Node* GetFirstChild(CXFA_Node* pTemplateNode) { - return pTemplateNode->GetNodeItem(XFA_NODEITEM_FirstChild); + return pTemplateNode->GetFirstChild(); } static inline CXFA_Node* GetNextSibling(CXFA_Node* pTemplateNode) { - return pTemplateNode->GetNodeItem(XFA_NODEITEM_NextSibling); + return pTemplateNode->GetNextSibling(); } static inline CXFA_Node* GetParent(CXFA_Node* pTemplateNode) { - return pTemplateNode->GetNodeItem(XFA_NODEITEM_Parent); + return pTemplateNode->GetParent(); } }; diff --git a/xfa/fxfa/parser/cxfa_validate.cpp b/xfa/fxfa/parser/cxfa_validate.cpp index c124c3052a..9e7ffcee50 100644 --- a/xfa/fxfa/parser/cxfa_validate.cpp +++ b/xfa/fxfa/parser/cxfa_validate.cpp @@ -79,9 +79,8 @@ WideString CXFA_Validate::GetMessageText(const WideString& wsMessageType) { if (!pNode) return L""; - for (CXFA_Node* pItemNode = pNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pItemNode; - pItemNode = pItemNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pItemNode = pNode->GetFirstChild(); pItemNode; + pItemNode = pItemNode->GetNextSibling()) { if (pItemNode->GetElementType() != XFA_Element::Text) continue; @@ -123,9 +122,8 @@ void CXFA_Validate::SetMessageText(const WideString& wsMessageType, if (!pNode) return; - for (CXFA_Node* pItemNode = pNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pItemNode; - pItemNode = pItemNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pItemNode = pNode->GetFirstChild(); pItemNode; + pItemNode = pItemNode->GetNextSibling()) { if (pItemNode->GetElementType() != XFA_Element::Text) continue; diff --git a/xfa/fxfa/parser/cxfa_value.cpp b/xfa/fxfa/parser/cxfa_value.cpp index 0998c06364..dc93bba25c 100644 --- a/xfa/fxfa/parser/cxfa_value.cpp +++ b/xfa/fxfa/parser/cxfa_value.cpp @@ -57,37 +57,37 @@ CXFA_Value::CXFA_Value(CXFA_Document* doc, XFA_PacketType packet) CXFA_Value::~CXFA_Value() {} XFA_Element CXFA_Value::GetChildValueClassID() const { - CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pNode = GetFirstChild(); return pNode ? pNode->GetElementType() : XFA_Element::Unknown; } WideString CXFA_Value::GetChildValueContent() const { - CXFA_Node* pNode = GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pNode = GetFirstChild(); if (!pNode) return L""; return pNode->JSObject()->TryContent(false, true).value_or(L""); } CXFA_Arc* CXFA_Value::GetArc() const { - return static_cast(GetNodeItem(XFA_NODEITEM_FirstChild)); + return static_cast(GetFirstChild()); } CXFA_Line* CXFA_Value::GetLine() const { - return static_cast(GetNodeItem(XFA_NODEITEM_FirstChild)); + return static_cast(GetFirstChild()); } CXFA_Rectangle* CXFA_Value::GetRectangle() const { - return static_cast(GetNodeItem(XFA_NODEITEM_FirstChild)); + return static_cast(GetFirstChild()); } CXFA_Text* CXFA_Value::GetText() const { - return static_cast(GetNodeItem(XFA_NODEITEM_FirstChild)); + return static_cast(GetFirstChild()); } CXFA_ExData* CXFA_Value::GetExData() const { - return static_cast(GetNodeItem(XFA_NODEITEM_FirstChild)); + return static_cast(GetFirstChild()); } CXFA_Image* CXFA_Value::GetImage() const { - return static_cast(GetNodeItem(XFA_NODEITEM_FirstChild)); + return static_cast(GetFirstChild()); } diff --git a/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp b/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp index c8de462e0a..e2e212f70b 100644 --- a/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp +++ b/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp @@ -47,7 +47,7 @@ class CXFA_TraverseStrategy_DDGroup { return pDDGroupNode->GetNextSameNameSibling(XFA_HASHCODE_Group); } static CXFA_Node* GetParent(CXFA_Node* pDDGroupNode) { - return pDDGroupNode->GetNodeItem(XFA_NODEITEM_Parent); + return pDDGroupNode->GetParent(); } }; @@ -57,7 +57,7 @@ struct RecurseRecord { }; CXFA_Node* FormValueNode_CreateChild(CXFA_Node* pValueNode, XFA_Element iType) { - CXFA_Node* pChildNode = pValueNode->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pChildNode = pValueNode->GetFirstChild(); if (!pChildNode) { if (iType == XFA_Element::Unknown) return nullptr; @@ -87,8 +87,7 @@ bool FormValueNode_SetChildContent(CXFA_Node* pValueNode, switch (pChildNode->GetObjectType()) { case XFA_ObjectType::ContentNode: { - CXFA_Node* pContentRawDataNode = - pChildNode->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pContentRawDataNode = pChildNode->GetFirstChild(); if (!pContentRawDataNode) { XFA_Element element = XFA_Element::Sharptext; if (pChildNode->GetElementType() == XFA_Element::ExData) { @@ -199,8 +198,8 @@ void CreateDataBinding(CXFA_Node* pFormNode, break; case XFA_Element::ExclGroup: { CXFA_Node* pChecked = nullptr; - CXFA_Node* pChild = pFormNode->GetNodeItem(XFA_NODEITEM_FirstChild); - for (; pChild; pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { + CXFA_Node* pChild = pFormNode->GetFirstChild(); + for (; pChild; pChild = pChild->GetNextSibling()) { if (pChild->GetElementType() != XFA_Element::Field) continue; @@ -218,7 +217,7 @@ void CreateDataBinding(CXFA_Node* pFormNode, if (!pItems) continue; - CXFA_Node* pText = pItems->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pText = pItems->GetFirstChild(); if (!pText) continue; @@ -235,8 +234,8 @@ void CreateDataBinding(CXFA_Node* pFormNode, if (!pChecked) break; - pChild = pFormNode->GetNodeItem(XFA_NODEITEM_FirstChild); - for (; pChild; pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { + pChild = pFormNode->GetFirstChild(); + for (; pChild; pChild = pChild->GetNextSibling()) { if (pChild == pChecked) continue; if (pChild->GetElementType() != XFA_Element::Field) @@ -247,10 +246,9 @@ void CreateDataBinding(CXFA_Node* pFormNode, 0, XFA_Element::Value); CXFA_Items* pItems = pChild->GetChild(0, XFA_Element::Items, false); - CXFA_Node* pText = - pItems ? pItems->GetNodeItem(XFA_NODEITEM_FirstChild) : nullptr; + CXFA_Node* pText = pItems ? pItems->GetFirstChild() : nullptr; if (pText) - pText = pText->GetNodeItem(XFA_NODEITEM_NextSibling); + pText = pText->GetNextSibling(); WideString wsContent; if (pText) @@ -397,8 +395,7 @@ CXFA_Node* ScopeMatchGlobalBinding(CXFA_Node* pDataScope, pCurDataScope && pCurDataScope->GetPacketType() == XFA_PacketType::Datasets; pLastDataScope = pCurDataScope, - pCurDataScope = - pCurDataScope->GetNodeItem(XFA_NODEITEM_Parent)) { + pCurDataScope = pCurDataScope->GetParent()) { for (CXFA_Node* pDataChild = pCurDataScope->GetFirstChildByName(dwNameHash); pDataChild; pDataChild = pDataChild->GetNextSameNameSibling(dwNameHash)) { @@ -458,7 +455,7 @@ CXFA_Node* FindOnceDataNode(CXFA_Document* pDocument, for (CXFA_Node* pCurDataScope = pDataScope; pCurDataScope && pCurDataScope->GetPacketType() == XFA_PacketType::Datasets; - pCurDataScope = pCurDataScope->GetNodeItem(XFA_NODEITEM_Parent)) { + pCurDataScope = pCurDataScope->GetParent()) { for (CXFA_Node* pDataChild = pCurDataScope->GetFirstChildByName(dwNameHash); pDataChild; pDataChild = pDataChild->GetNextSameNameSibling(dwNameHash)) { @@ -528,22 +525,20 @@ CXFA_Node* CloneOrMergeInstanceManager(CXFA_Document* pDocument, pDocument, XFA_Element::InstanceManager, dwInstNameHash, pFormParent); if (pExistingNode) { uint32_t dwNameHash = pTemplateNode->GetNameHash(); - for (CXFA_Node* pNode = - pExistingNode->GetNodeItem(XFA_NODEITEM_NextSibling); - pNode;) { + for (CXFA_Node* pNode = pExistingNode->GetNextSibling(); pNode;) { XFA_Element eCurType = pNode->GetElementType(); if (eCurType == XFA_Element::InstanceManager) break; if ((eCurType != XFA_Element::Subform) && (eCurType != XFA_Element::SubformSet)) { - pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling); + pNode = pNode->GetNextSibling(); continue; } if (dwNameHash != pNode->GetNameHash()) break; - CXFA_Node* pNextNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling); + CXFA_Node* pNextNode = pNode->GetNextSibling(); pFormParent->RemoveChild(pNode, true); subforms->push_back(pNode); pNode = pNextNode; @@ -686,8 +681,8 @@ void SortRecurseRecord(std::vector* rgRecords, CXFA_Node* pDataScope, bool bChoiceMode) { std::vector rgResultRecord; - for (CXFA_Node* pNode = pDataScope->GetNodeItem(XFA_NODEITEM_FirstChild); - pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pNode = pDataScope->GetFirstChild(); pNode; + pNode = pNode->GetNextSibling()) { auto it = std::find_if(rgRecords->begin(), rgRecords->end(), [pNode](const RecurseRecord& record) { return pNode == record.pDataChild; @@ -804,10 +799,9 @@ CXFA_Node* CopyContainer_SubformSet(CXFA_Document* pDocument, auto it = subformMapArray.find(pSubform); if (it != subformMapArray.end()) pDataNode = it->second; - for (CXFA_Node* pTemplateChild = - pTemplateNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pTemplateChild; pTemplateChild = pTemplateChild->GetNodeItem( - XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pTemplateChild = pTemplateNode->GetFirstChild(); + pTemplateChild; + pTemplateChild = pTemplateChild->GetNextSibling()) { if (NeedGenerateForm(pTemplateChild, bUseInstanceManager)) { XFA_NodeMerge_CloneOrMergeContainer(pDocument, pSubform, pTemplateChild, true, nullptr); @@ -843,10 +837,9 @@ CXFA_Node* CopyContainer_SubformSet(CXFA_Document* pDocument, std::vector rgItemMatchList; std::vector rgItemUnmatchList; - for (CXFA_Node* pTemplateChild = - pTemplateNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pTemplateChild; pTemplateChild = pTemplateChild->GetNodeItem( - XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pTemplateChild = pTemplateNode->GetFirstChild(); + pTemplateChild; + pTemplateChild = pTemplateChild->GetNextSibling()) { if (NeedGenerateForm(pTemplateChild, bUseInstanceManager)) { XFA_NodeMerge_CloneOrMergeContainer(pDocument, pSubformSetNode, pTemplateChild, true, nullptr); @@ -909,10 +902,9 @@ CXFA_Node* CopyContainer_SubformSet(CXFA_Document* pDocument, if (!pFirstInstance) pFirstInstance = pSubformSetNode; - for (CXFA_Node* pTemplateChild = - pTemplateNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pTemplateChild; pTemplateChild = pTemplateChild->GetNodeItem( - XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pTemplateChild = pTemplateNode->GetFirstChild(); + pTemplateChild; + pTemplateChild = pTemplateChild->GetNextSibling()) { if (NeedGenerateForm(pTemplateChild, bUseInstanceManager)) { XFA_NodeMerge_CloneOrMergeContainer(pDocument, pSubformSetNode, pTemplateChild, true, nullptr); @@ -950,10 +942,9 @@ CXFA_Node* CopyContainer_SubformSet(CXFA_Document* pDocument, if (!pFirstInstance) pFirstInstance = pSubformNode; - for (CXFA_Node* pTemplateChild = - pTemplateNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pTemplateChild; pTemplateChild = pTemplateChild->GetNodeItem( - XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pTemplateChild = pTemplateNode->GetFirstChild(); + pTemplateChild; + pTemplateChild = pTemplateChild->GetNextSibling()) { if (NeedGenerateForm(pTemplateChild, bUseInstanceManager)) { XFA_NodeMerge_CloneOrMergeContainer(pDocument, pSubformNode, pTemplateChild, true, nullptr); @@ -975,10 +966,8 @@ CXFA_Node* CopyContainer_SubformSet(CXFA_Document* pDocument, pFirstInstance = pSubformSetNode; bool bFound = false; - for (CXFA_Node* pTemplateChild = - pTemplateNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pTemplateChild; pTemplateChild = pTemplateChild->GetNodeItem( - XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pTemplateChild = pTemplateNode->GetFirstChild(); + pTemplateChild; pTemplateChild = pTemplateChild->GetNextSibling()) { if (NeedGenerateForm(pTemplateChild, bUseInstanceManager)) { XFA_NodeMerge_CloneOrMergeContainer(pDocument, pSubformSetNode, pTemplateChild, true, nullptr); @@ -1004,10 +993,9 @@ CXFA_Node* CopyContainer_Field(CXFA_Document* pDocument, CXFA_Node* pFieldNode = XFA_NodeMerge_CloneOrMergeContainer( pDocument, pFormNode, pTemplateNode, false, nullptr); ASSERT(pFieldNode); - for (CXFA_Node* pTemplateChildNode = - pTemplateNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pTemplateChildNode; pTemplateChildNode = pTemplateChildNode->GetNodeItem( - XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pTemplateChildNode = pTemplateNode->GetFirstChild(); + pTemplateChildNode; + pTemplateChildNode = pTemplateChildNode->GetNextSibling()) { if (NeedGenerateForm(pTemplateChildNode, true)) { XFA_NodeMerge_CloneOrMergeContainer(pDocument, pFieldNode, pTemplateChildNode, true, nullptr); @@ -1137,8 +1125,7 @@ void UpdateBindingRelations(CXFA_Document* pDocument, FormValueNode_MatchNoneCreateChild(pFormNode); } else { - CXFA_Node* pDataParent = - pDataNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pDataParent = pDataNode->GetParent(); if (pDataParent != pDataScope) { ASSERT(pDataParent); pDataParent->RemoveChild(pDataNode, true); @@ -1208,10 +1195,8 @@ void UpdateBindingRelations(CXFA_Document* pDocument, (eType == XFA_Element::Subform || eType == XFA_Element::SubformSet || eType == XFA_Element::Area || eType == XFA_Element::PageArea || eType == XFA_Element::PageSet)) { - for (CXFA_Node* pFormChild = - pFormNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pFormChild; - pFormChild = pFormChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pFormChild = pFormNode->GetFirstChild(); pFormChild; + pFormChild = pFormChild->GetNextSibling()) { if (!pFormChild->IsContainerNode()) continue; if (pFormChild->IsUnusedNode()) @@ -1226,9 +1211,8 @@ void UpdateBindingRelations(CXFA_Document* pDocument, void UpdateDataRelation(CXFA_Node* pDataNode, CXFA_Node* pDataDescriptionNode) { ASSERT(pDataDescriptionNode); - for (CXFA_Node* pDataChild = pDataNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pDataChild; - pDataChild = pDataChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pDataChild = pDataNode->GetFirstChild(); pDataChild; + pDataChild = pDataChild->GetNextSibling()) { uint32_t dwNameHash = pDataChild->GetNameHash(); if (!dwNameHash) continue; @@ -1265,9 +1249,8 @@ CXFA_Node* XFA_DataMerge_FindFormDOMInstance(CXFA_Document* pDocument, XFA_Element eType, uint32_t dwNameHash, CXFA_Node* pFormParent) { - CXFA_Node* pFormChild = pFormParent->GetNodeItem(XFA_NODEITEM_FirstChild); - for (; pFormChild; - pFormChild = pFormChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { + CXFA_Node* pFormChild = pFormParent->GetFirstChild(); + for (; pFormChild; pFormChild = pFormChild->GetNextSibling()) { if (pFormChild->GetElementType() == eType && pFormChild->GetNameHash() == dwNameHash && pFormChild->IsUnusedNode()) { return pFormChild; @@ -1301,10 +1284,8 @@ CXFA_Node* XFA_NodeMerge_CloneOrMergeContainer( pExistingNode->ClearFlag(XFA_NodeFlag_UnusedNode); pExistingNode->SetTemplateNode(pTemplateNode); if (bRecursive && pExistingNode->GetElementType() != XFA_Element::Items) { - for (CXFA_Node* pTemplateChild = - pTemplateNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pTemplateChild; pTemplateChild = pTemplateChild->GetNodeItem( - XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pTemplateChild = pTemplateNode->GetFirstChild(); + pTemplateChild; pTemplateChild = pTemplateChild->GetNextSibling()) { if (NeedGenerateForm(pTemplateChild, true)) { XFA_NodeMerge_CloneOrMergeContainer( pDocument, pExistingNode, pTemplateChild, bRecursive, nullptr); @@ -1318,10 +1299,8 @@ CXFA_Node* XFA_NodeMerge_CloneOrMergeContainer( CXFA_Node* pNewNode = pTemplateNode->CloneTemplateToForm(false); pFormParent->InsertChild(pNewNode, nullptr); if (bRecursive) { - for (CXFA_Node* pTemplateChild = - pTemplateNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pTemplateChild; pTemplateChild = pTemplateChild->GetNodeItem( - XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pTemplateChild = pTemplateNode->GetFirstChild(); + pTemplateChild; pTemplateChild = pTemplateChild->GetNextSibling()) { if (NeedGenerateForm(pTemplateChild, true)) { CXFA_Node* pNewChild = pTemplateChild->CloneTemplateToForm(true); pNewNode->InsertChild(pNewChild, nullptr); @@ -1334,7 +1313,7 @@ CXFA_Node* XFA_NodeMerge_CloneOrMergeContainer( CXFA_Node* XFA_DataMerge_FindDataScope(CXFA_Node* pParentFormNode) { for (CXFA_Node* pRootBoundNode = pParentFormNode; pRootBoundNode && pRootBoundNode->IsContainerNode(); - pRootBoundNode = pRootBoundNode->GetNodeItem(XFA_NODEITEM_Parent)) { + pRootBoundNode = pRootBoundNode->GetParent()) { CXFA_Node* pDataScope = pRootBoundNode->GetBindData(); if (pDataScope) return pDataScope; @@ -1374,8 +1353,8 @@ CXFA_Node* CXFA_Document::DataMerge_CopyContainer(CXFA_Node* pTemplateNode, void CXFA_Document::DataMerge_UpdateBindingRelations( CXFA_Node* pFormUpdateRoot) { - CXFA_Node* pDataScope = XFA_DataMerge_FindDataScope( - pFormUpdateRoot->GetNodeItem(XFA_NODEITEM_Parent)); + CXFA_Node* pDataScope = + XFA_DataMerge_FindDataScope(pFormUpdateRoot->GetParent()); if (!pDataScope) return; @@ -1410,10 +1389,8 @@ void CXFA_Document::DoDataMerge() { CXFA_Node *pDataRoot = nullptr, *pDDRoot = nullptr; WideString wsDatasetsURI = pDatasetsRoot->JSObject()->TryNamespace().value_or(WideString()); - for (CXFA_Node* pChildNode = - pDatasetsRoot->GetNodeItem(XFA_NODEITEM_FirstChild); - pChildNode; - pChildNode = pChildNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pChildNode = pDatasetsRoot->GetFirstChild(); pChildNode; + pChildNode = pChildNode->GetNextSibling()) { if (pChildNode->GetElementType() != XFA_Element::DataGroup) continue; @@ -1497,16 +1474,14 @@ void CXFA_Document::DoDataMerge() { pDataTopLevel->JSObject()->SetCData(XFA_Attribute::Name, wsDataTopLevelName, false, false); pDataTopLevel->SetXMLMappingNode(pDataTopLevelXMLNode); - CXFA_Node* pBeforeNode = pDataRoot->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pBeforeNode = pDataRoot->GetFirstChild(); pDataRoot->InsertChild(pDataTopLevel, pBeforeNode); } ASSERT(pDataTopLevel); CreateDataBinding(pSubformSetNode, pDataTopLevel, true); - for (CXFA_Node* pTemplateChild = - pTemplateChosen->GetNodeItem(XFA_NODEITEM_FirstChild); - pTemplateChild; - pTemplateChild = pTemplateChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pTemplateChild = pTemplateChosen->GetFirstChild(); + pTemplateChild; pTemplateChild = pTemplateChild->GetNextSibling()) { if (NeedGenerateForm(pTemplateChild, true)) { XFA_NodeMerge_CloneOrMergeContainer(this, pSubformSetNode, pTemplateChild, true, nullptr); @@ -1541,7 +1516,7 @@ void CXFA_Document::DoDataMerge() { if (pNode->IsContainerNode() || pNode->GetElementType() == XFA_Element::InstanceManager) { CXFA_Node* pNext = sIterator.SkipChildrenAndMoveToNext(); - pNode->GetNodeItem(XFA_NODEITEM_Parent)->RemoveChild(pNode, true); + pNode->GetParent()->RemoveChild(pNode, true); pNode = pNext; } else { pNode->ClearFlag(XFA_NodeFlag_UnusedNode); @@ -1558,7 +1533,7 @@ void CXFA_Document::DoDataMerge() { void CXFA_Document::DoDataRemerge(bool bDoDataMerge) { CXFA_Node* pFormRoot = ToNode(GetXFAObject(XFA_HASHCODE_Form)); if (pFormRoot) { - while (CXFA_Node* pNode = pFormRoot->GetNodeItem(XFA_NODEITEM_FirstChild)) + while (CXFA_Node* pNode = pFormRoot->GetFirstChild()) pFormRoot->RemoveChild(pNode, true); pFormRoot->SetBindingNode(nullptr); diff --git a/xfa/fxfa/parser/xfa_utils.cpp b/xfa/fxfa/parser/xfa_utils.cpp index bc181b5947..bda4c2c92f 100644 --- a/xfa/fxfa/parser/xfa_utils.cpp +++ b/xfa/fxfa/parser/xfa_utils.cpp @@ -115,11 +115,11 @@ bool AttributeSaveInDataModel(CXFA_Node* pNode, XFA_Attribute eAttribute) { if (pNode->GetElementType() != XFA_Element::Image) return bSaveInDataModel; - CXFA_Node* pValueNode = pNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pValueNode = pNode->GetParent(); if (!pValueNode || pValueNode->GetElementType() != XFA_Element::Value) return bSaveInDataModel; - CXFA_Node* pFieldNode = pValueNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pFieldNode = pValueNode->GetParent(); if (pFieldNode && pFieldNode->GetBindData() && eAttribute == XFA_Attribute::Href) { bSaveInDataModel = true; @@ -134,11 +134,11 @@ bool ContentNodeNeedtoExport(CXFA_Node* pContentNode) { return false; ASSERT(pContentNode->IsContentNode()); - CXFA_Node* pParentNode = pContentNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParentNode = pContentNode->GetParent(); if (!pParentNode || pParentNode->GetElementType() != XFA_Element::Value) return true; - CXFA_Node* pGrandParentNode = pParentNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pGrandParentNode = pParentNode->GetParent(); if (!pGrandParentNode || !pGrandParentNode->IsContainerNode()) return true; if (pGrandParentNode->GetBindData()) @@ -194,12 +194,12 @@ void RegenerateFormFile_Changed(CXFA_Node* pNode, if (!bSaveXML && !ContentNodeNeedtoExport(pNode)) break; - CXFA_Node* pRawValueNode = pNode->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pRawValueNode = pNode->GetFirstChild(); while (pRawValueNode && pRawValueNode->GetElementType() != XFA_Element::SharpxHTML && pRawValueNode->GetElementType() != XFA_Element::Sharptext && pRawValueNode->GetElementType() != XFA_Element::Sharpxml) { - pRawValueNode = pRawValueNode->GetNodeItem(XFA_NODEITEM_NextSibling); + pRawValueNode = pRawValueNode->GetNextSibling(); } if (!pRawValueNode) break; @@ -245,10 +245,9 @@ void RegenerateFormFile_Changed(CXFA_Node* pNode, iEnd = rawValue->Find(L'\n', iStart); } - CXFA_Node* pParentNode = pNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pParentNode = pNode->GetParent(); ASSERT(pParentNode); - CXFA_Node* pGrandparentNode = - pParentNode->GetNodeItem(XFA_NODEITEM_Parent); + CXFA_Node* pGrandparentNode = pParentNode->GetParent(); ASSERT(pGrandparentNode); WideString bodyTagName; bodyTagName = @@ -294,23 +293,23 @@ void RegenerateFormFile_Changed(CXFA_Node* pNode, } } CFX_WideTextBuf newBuf; - CXFA_Node* pChildNode = pNode->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pChildNode = pNode->GetFirstChild(); while (pChildNode) { RegenerateFormFile_Changed(pChildNode, newBuf, bSaveXML); wsChildren += newBuf.AsStringView(); newBuf.Clear(); - pChildNode = pChildNode->GetNodeItem(XFA_NODEITEM_NextSibling); + pChildNode = pChildNode->GetNextSibling(); } if (!bSaveXML && !wsChildren.IsEmpty() && pNode->GetElementType() == XFA_Element::Items) { wsChildren.clear(); bSaveXML = true; - CXFA_Node* pChild = pNode->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pChild = pNode->GetFirstChild(); while (pChild) { RegenerateFormFile_Changed(pChild, newBuf, bSaveXML); wsChildren += newBuf.AsStringView(); newBuf.Clear(); - pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling); + pChild = pChild->GetNextSibling(); } } break; @@ -375,12 +374,12 @@ void RegenerateFormFile_Container( if (!wsOutput.IsEmpty()) pStream->WriteString(wsOutput.AsStringView()); - CXFA_Node* pChildNode = pNode->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pChildNode = pNode->GetFirstChild(); if (pChildNode) { pStream->WriteString(L"\n>"); while (pChildNode) { RegenerateFormFile_Container(pChildNode, pStream, bSaveXML); - pChildNode = pChildNode->GetNodeItem(XFA_NODEITEM_NextSibling); + pChildNode = pChildNode->GetNextSibling(); } pStream->WriteString(L"WriteString(wsElement); @@ -422,7 +421,7 @@ CXFA_LocaleValue XFA_GetLocaleValue(CXFA_Node* pNode) { if (!pNodeValue) return CXFA_LocaleValue(); - CXFA_Node* pValueChild = pNodeValue->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pValueChild = pNodeValue->GetFirstChild(); if (!pValueChild) return CXFA_LocaleValue(); @@ -495,9 +494,8 @@ void XFA_DataExporter_DealWithDataGroupNode(CXFA_Node* pDataNode) { return; int32_t iChildNum = 0; - for (CXFA_Node* pChildNode = pDataNode->GetNodeItem(XFA_NODEITEM_FirstChild); - pChildNode; - pChildNode = pChildNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { + for (CXFA_Node* pChildNode = pDataNode->GetFirstChild(); pChildNode; + pChildNode = pChildNode->GetNextSibling()) { iChildNum++; XFA_DataExporter_DealWithDataGroupNode(pChildNode); } @@ -545,10 +543,10 @@ void XFA_DataExporter_RegenerateFormFile( wsVersionNumber += L"/\"\n>"; pStream->WriteString(wsVersionNumber.AsStringView()); - CXFA_Node* pChildNode = pNode->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pChildNode = pNode->GetFirstChild(); while (pChildNode) { RegenerateFormFile_Container(pChildNode, pStream, false); - pChildNode = pChildNode->GetNodeItem(XFA_NODEITEM_NextSibling); + pChildNode = pChildNode->GetNextSibling(); } pStream->WriteString(L""); } else { @@ -564,7 +562,7 @@ bool XFA_FieldIsMultiListBox(CXFA_Node* pFieldNode) { if (!pUIChild) return false; - CXFA_Node* pFirstChild = pUIChild->GetNodeItem(XFA_NODEITEM_FirstChild); + CXFA_Node* pFirstChild = pUIChild->GetFirstChild(); if (!pFirstChild || pFirstChild->GetElementType() != XFA_Element::ChoiceList) { return false; -- cgit v1.2.3