Index: xfa/src/fxfa/src/parser/xfa_document_datamerger_imp.cpp |
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 058ed483d0a7d6d3dd79e5fc2fe67faefc5e54f8..50685056f4502da8fbe30f49f8e7dff05c5bd8e4 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); |