diff options
Diffstat (limited to 'xfa/src/fxfa/src/parser/xfa_document_datamerger_imp.cpp')
-rw-r--r-- | xfa/src/fxfa/src/parser/xfa_document_datamerger_imp.cpp | 45 |
1 files changed, 20 insertions, 25 deletions
diff --git a/xfa/src/fxfa/src/parser/xfa_document_datamerger_imp.cpp b/xfa/src/fxfa/src/parser/xfa_document_datamerger_imp.cpp index 058ed483d0..50685056f4 100644 --- a/xfa/src/fxfa/src/parser/xfa_document_datamerger_imp.cpp +++ b/xfa/src/fxfa/src/parser/xfa_document_datamerger_imp.cpp @@ -459,11 +459,11 @@ static CXFA_Node* XFA_DataMerge_FindDataRefDataNode(CXFA_Document* pDocument, rs.dwFlags == XFA_RESOLVENODE_RSTYPE_CreateNodeMidAll || rs.nodes.GetSize() > 1) { return pDocument->GetNotBindNode(rs.nodes); - } else if (rs.dwFlags == XFA_RESOLVENODE_RSTYPE_CreateNodeOne) { + } + if (rs.dwFlags == XFA_RESOLVENODE_RSTYPE_CreateNodeOne) { CXFA_Object* pObject = (rs.nodes.GetSize() > 0) ? rs.nodes[0] : NULL; - CXFA_Node* pNode = - (pObject && pObject->IsNode()) ? (CXFA_Node*)pObject : NULL; - if (!bForceBind && (pNode != NULL) && pNode->HasBindItem()) { + CXFA_Node* pNode = ToNode(pObject); + if (!bForceBind && pNode && pNode->HasBindItem()) { pNode = NULL; } return pNode; @@ -840,7 +840,8 @@ static CXFA_Node* XFA_DataMerge_CopyContainer_SubformSet( subformMapArray.GetStartPosition(); for (int32_t iIndex = 0; iIndex < subformArray.GetSize(); iIndex++) { CXFA_Node* pSubform = subformArray[iIndex]; - CXFA_Node* pDataNode = (CXFA_Node*)subformMapArray.GetValueAt(pSubform); + CXFA_Node* pDataNode = + reinterpret_cast<CXFA_Node*>(subformMapArray.GetValueAt(pSubform)); for (CXFA_Node* pTemplateChild = pTemplateNode->GetNodeItem(XFA_NODEITEM_FirstChild); pTemplateChild; pTemplateChild = pTemplateChild->GetNodeItem( @@ -1162,7 +1163,7 @@ static void XFA_DataMerge_UpdateBindingRelations(CXFA_Document* pDocument, ? XFA_ELEMENT_DataGroup : XFA_ELEMENT_DataValue; CXFA_Node* pRecordNode = - (CXFA_Node*)pDocument->GetXFAObject(XFA_HASHCODE_Record); + ToNode(pDocument->GetXFAObject(XFA_HASHCODE_Record)); pDataNode = XFA_DataDescription_MaybeCreateDataNode( pDocument, pRecordNode, eDataNodeType, pFormNode->GetCData(XFA_ATTRIBUTE_Name)); @@ -1192,8 +1193,7 @@ static void XFA_DataMerge_UpdateBindingRelations(CXFA_Document* pDocument, pDocument->GetScriptContext()->ResolveObjects(pDataScope, wsRef, rs, dFlags, pTemplateNode); CXFA_Object* pObject = (rs.nodes.GetSize() > 0) ? rs.nodes[0] : NULL; - pDataNode = - (pObject && pObject->IsNode()) ? (CXFA_Node*)pObject : NULL; + pDataNode = ToNode(pObject); if (pDataNode) { XFA_DataMerge_CreateDataBinding( pFormNode, pDataNode, @@ -1279,7 +1279,7 @@ static void XFA_DataMerge_UpdateBindingRelations(CXFA_Document* pDocument, CXFA_ ? XFA_ELEMENT_DataGroup : XFA_ELEMENT_DataValue; CXFA_Node* pRecordNode = - (CXFA_Node*)pDocument->GetXFAObject(XFA_HASHCODE_Record); + ToNode(pDocument->GetXFAObject(XFA_HASHCODE_Record)); pDataNode = XFA_DataDescription_MaybeCreateDataNode( pDocument, pRecordNode, eDataNodeType, pFormNode->GetCData(XFA_ATTRIBUTE_Name)); @@ -1302,7 +1302,7 @@ static void XFA_DataMerge_UpdateBindingRelations(CXFA_Document* pDocument, CXFA_ pDocument->GetScriptContext()->ResolveObjects(pDataScope, wsRef, rs, dFlags, pTemplateNode); CXFA_Object* pObject = (rs.nodes.GetSize() > 0) ? rs.nodes[0] : NULL; - pDataNode = (pObject && pObject->IsNode()) ? (CXFA_Node*)pObject : NULL; + pDataNode = ToNode(pObject); if (pDataNode) { XFA_DataMerge_CreateDataBinding(pFormNode, pDataNode, FALSE); } @@ -1337,8 +1337,8 @@ CXFA_Node* XFA_DataMerge_FindDataScope(CXFA_Node* pParentFormNode) { return pDataScope; } } - return (CXFA_Node*)pParentFormNode->GetDocument()->GetXFAObject( - XFA_HASHCODE_Data); + return ToNode( + pParentFormNode->GetDocument()->GetXFAObject(XFA_HASHCODE_Data)); } void CXFA_Document::DataMerge_UpdateBindingRelations( CXFA_Node* pFormUpdateRoot) { @@ -1359,10 +1359,10 @@ void CXFA_Document::DataMerge_UpdateBindingRelations( while (rgFormNodeList.GetCount()) { FX_POSITION pos; pos = rgFormNodeList.GetHeadPosition(); - CXFA_Node* pCurFormNode = (CXFA_Node*)rgFormNodeList.GetAt(pos); + CXFA_Node* pCurFormNode = ToNode(rgFormNodeList.GetAt(pos)); rgFormNodeList.RemoveAt(pos); pos = rgDataScopeList.GetHeadPosition(); - CXFA_Node* pCurDataScope = (CXFA_Node*)rgDataScopeList.GetAt(pos); + CXFA_Node* pCurDataScope = ToNode(rgDataScopeList.GetAt(pos)); rgDataScopeList.RemoveAt(pos); XFA_DataMerge_UpdateBindingRelations(this, pCurFormNode, pCurDataScope, rgFormNodeList, rgDataScopeList); @@ -1371,19 +1371,14 @@ void CXFA_Document::DataMerge_UpdateBindingRelations( } CXFA_Node* CXFA_Document::GetNotBindNode(CXFA_ObjArray& arrayNodes) { for (int32_t i = 0; i < arrayNodes.GetSize(); i++) { - CXFA_Object* pObject = arrayNodes[i]; - if (!pObject->IsNode()) { - continue; - } - if (((CXFA_Node*)pObject)->HasBindItem()) { - continue; - } - return ((CXFA_Node*)pObject); + CXFA_Node* pNode = arrayNodes[i]->AsNode(); + if (pNode && !pNode->HasBindItem()) + return pNode; } - return NULL; + return nullptr; } void CXFA_Document::DoDataMerge() { - CXFA_Node* pDatasetsRoot = (CXFA_Node*)GetXFAObject(XFA_HASHCODE_Datasets); + CXFA_Node* pDatasetsRoot = ToNode(GetXFAObject(XFA_HASHCODE_Datasets)); if (!pDatasetsRoot) { IFDE_XMLElement* pDatasetsXMLNode = IFDE_XMLElement::Create(FX_WSTRC(L"xfa:datasets")); @@ -1537,7 +1532,7 @@ void CXFA_Document::DoDataMerge() { } } void CXFA_Document::DoDataRemerge(FX_BOOL bDoDataMerge) { - CXFA_Node* pFormRoot = (CXFA_Node*)this->GetXFAObject(XFA_HASHCODE_Form); + CXFA_Node* pFormRoot = ToNode(GetXFAObject(XFA_HASHCODE_Form)); if (pFormRoot) { while (CXFA_Node* pNode = pFormRoot->GetNodeItem(XFA_NODEITEM_FirstChild)) { pFormRoot->RemoveChild(pNode); |