Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(677)

Side by Side Diff: xfa/src/fxfa/src/parser/xfa_document_datamerger_imp.cpp

Issue 1668003003: Call CXFA_Object::ToNode() rather than C-style casting. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "xfa/src/foxitlib.h" 7 #include "xfa/src/foxitlib.h"
8 #include "xfa/src/fxfa/src/common/xfa_utils.h" 8 #include "xfa/src/fxfa/src/common/xfa_utils.h"
9 #include "xfa/src/fxfa/src/common/xfa_object.h" 9 #include "xfa/src/fxfa/src/common/xfa_object.h"
10 #include "xfa/src/fxfa/src/common/xfa_document.h" 10 #include "xfa/src/fxfa/src/common/xfa_document.h"
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 if (bUpLevel || wsRef != FX_WSTRC(L"name")) { 452 if (bUpLevel || wsRef != FX_WSTRC(L"name")) {
453 dFlags |= (XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings); 453 dFlags |= (XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings);
454 } 454 }
455 XFA_RESOLVENODE_RS rs; 455 XFA_RESOLVENODE_RS rs;
456 pDocument->GetScriptContext()->ResolveObjects(pDataScope, wsRef, rs, dFlags, 456 pDocument->GetScriptContext()->ResolveObjects(pDataScope, wsRef, rs, dFlags,
457 pTemplateNode); 457 pTemplateNode);
458 if (rs.dwFlags == XFA_RESOLVENODE_RSTYPE_CreateNodeAll || 458 if (rs.dwFlags == XFA_RESOLVENODE_RSTYPE_CreateNodeAll ||
459 rs.dwFlags == XFA_RESOLVENODE_RSTYPE_CreateNodeMidAll || 459 rs.dwFlags == XFA_RESOLVENODE_RSTYPE_CreateNodeMidAll ||
460 rs.nodes.GetSize() > 1) { 460 rs.nodes.GetSize() > 1) {
461 return pDocument->GetNotBindNode(rs.nodes); 461 return pDocument->GetNotBindNode(rs.nodes);
462 } else if (rs.dwFlags == XFA_RESOLVENODE_RSTYPE_CreateNodeOne) { 462 }
463 if (rs.dwFlags == XFA_RESOLVENODE_RSTYPE_CreateNodeOne) {
463 CXFA_Object* pObject = (rs.nodes.GetSize() > 0) ? rs.nodes[0] : NULL; 464 CXFA_Object* pObject = (rs.nodes.GetSize() > 0) ? rs.nodes[0] : NULL;
464 CXFA_Node* pNode = 465 CXFA_Node* pNode = ToNode(pObject);
465 (pObject && pObject->IsNode()) ? (CXFA_Node*)pObject : NULL; 466 if (!bForceBind && pNode && pNode->HasBindItem()) {
466 if (!bForceBind && (pNode != NULL) && pNode->HasBindItem()) {
467 pNode = NULL; 467 pNode = NULL;
468 } 468 }
469 return pNode; 469 return pNode;
470 } 470 }
471 return NULL; 471 return NULL;
472 } 472 }
473 CXFA_Node* XFA_DataMerge_FindFormDOMInstance(CXFA_Document* pDocument, 473 CXFA_Node* XFA_DataMerge_FindFormDOMInstance(CXFA_Document* pDocument,
474 XFA_ELEMENT eClassID, 474 XFA_ELEMENT eClassID,
475 FX_DWORD dwNameHash, 475 FX_DWORD dwNameHash,
476 CXFA_Node* pFormParent) { 476 CXFA_Node* pFormParent) {
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 pFirstInstance = pSubformNode; 833 pFirstInstance = pSubformNode;
834 } 834 }
835 XFA_DataMerge_CreateDataBinding(pSubformNode, pDataNode); 835 XFA_DataMerge_CreateDataBinding(pSubformNode, pDataNode);
836 FXSYS_assert(pSubformNode); 836 FXSYS_assert(pSubformNode);
837 subformMapArray.SetAt(pSubformNode, pDataNode); 837 subformMapArray.SetAt(pSubformNode, pDataNode);
838 subformArray.Add(pSubformNode); 838 subformArray.Add(pSubformNode);
839 } 839 }
840 subformMapArray.GetStartPosition(); 840 subformMapArray.GetStartPosition();
841 for (int32_t iIndex = 0; iIndex < subformArray.GetSize(); iIndex++) { 841 for (int32_t iIndex = 0; iIndex < subformArray.GetSize(); iIndex++) {
842 CXFA_Node* pSubform = subformArray[iIndex]; 842 CXFA_Node* pSubform = subformArray[iIndex];
843 CXFA_Node* pDataNode = (CXFA_Node*)subformMapArray.GetValueAt(pSubform); 843 CXFA_Node* pDataNode =
844 reinterpret_cast<CXFA_Node*>(subformMapArray.GetValueAt(pSubform));
844 for (CXFA_Node* pTemplateChild = 845 for (CXFA_Node* pTemplateChild =
845 pTemplateNode->GetNodeItem(XFA_NODEITEM_FirstChild); 846 pTemplateNode->GetNodeItem(XFA_NODEITEM_FirstChild);
846 pTemplateChild; pTemplateChild = pTemplateChild->GetNodeItem( 847 pTemplateChild; pTemplateChild = pTemplateChild->GetNodeItem(
847 XFA_NODEITEM_NextSibling)) { 848 XFA_NODEITEM_NextSibling)) {
848 if (XFA_NeedGenerateForm(pTemplateChild, bUseInstanceManager)) { 849 if (XFA_NeedGenerateForm(pTemplateChild, bUseInstanceManager)) {
849 XFA_NodeMerge_CloneOrMergeContainer(pDocument, pSubform, 850 XFA_NodeMerge_CloneOrMergeContainer(pDocument, pSubform,
850 pTemplateChild, TRUE); 851 pTemplateChild, TRUE);
851 } else if (pTemplateChild->GetObjectType() == 852 } else if (pTemplateChild->GetObjectType() ==
852 XFA_OBJECTTYPE_ContainerNode) { 853 XFA_OBJECTTYPE_ContainerNode) {
853 pDocument->DataMerge_CopyContainer(pTemplateChild, pSubform, 854 pDocument->DataMerge_CopyContainer(pTemplateChild, pSubform,
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
1155 if (!bDataRef || bParentDataRef) { 1156 if (!bDataRef || bParentDataRef) {
1156 FX_DWORD dwNameHash = pFormNode->GetNameHash(); 1157 FX_DWORD dwNameHash = pFormNode->GetNameHash();
1157 if (dwNameHash != 0 && !pDataNode) { 1158 if (dwNameHash != 0 && !pDataNode) {
1158 pDataNode = XFA_DataMerge_GetGlobalBinding(pDocument, dwNameHash); 1159 pDataNode = XFA_DataMerge_GetGlobalBinding(pDocument, dwNameHash);
1159 if (!pDataNode) { 1160 if (!pDataNode) {
1160 XFA_ELEMENT eDataNodeType = (eClassID == XFA_ELEMENT_Subform || 1161 XFA_ELEMENT eDataNodeType = (eClassID == XFA_ELEMENT_Subform ||
1161 XFA_FieldIsMultiListBox(pFormNode)) 1162 XFA_FieldIsMultiListBox(pFormNode))
1162 ? XFA_ELEMENT_DataGroup 1163 ? XFA_ELEMENT_DataGroup
1163 : XFA_ELEMENT_DataValue; 1164 : XFA_ELEMENT_DataValue;
1164 CXFA_Node* pRecordNode = 1165 CXFA_Node* pRecordNode =
1165 (CXFA_Node*)pDocument->GetXFAObject(XFA_HASHCODE_Record); 1166 ToNode(pDocument->GetXFAObject(XFA_HASHCODE_Record));
1166 pDataNode = XFA_DataDescription_MaybeCreateDataNode( 1167 pDataNode = XFA_DataDescription_MaybeCreateDataNode(
1167 pDocument, pRecordNode, eDataNodeType, 1168 pDocument, pRecordNode, eDataNodeType,
1168 pFormNode->GetCData(XFA_ATTRIBUTE_Name)); 1169 pFormNode->GetCData(XFA_ATTRIBUTE_Name));
1169 if (pDataNode) { 1170 if (pDataNode) {
1170 XFA_DataMerge_CreateDataBinding(pFormNode, pDataNode, FALSE); 1171 XFA_DataMerge_CreateDataBinding(pFormNode, pDataNode, FALSE);
1171 XFA_DataMerge_RegisterGlobalBinding( 1172 XFA_DataMerge_RegisterGlobalBinding(
1172 pDocument, pFormNode->GetNameHash(), pDataNode); 1173 pDocument, pFormNode->GetNameHash(), pDataNode);
1173 } 1174 }
1174 } else { 1175 } else {
1175 XFA_DataMerge_CreateDataBinding(pFormNode, pDataNode); 1176 XFA_DataMerge_CreateDataBinding(pFormNode, pDataNode);
1176 } 1177 }
1177 } 1178 }
1178 if (!pDataNode) { 1179 if (!pDataNode) {
1179 XFA_DataMerge_FormValueNode_MatchNoneCreateChild(pFormNode); 1180 XFA_DataMerge_FormValueNode_MatchNoneCreateChild(pFormNode);
1180 } 1181 }
1181 } 1182 }
1182 break; 1183 break;
1183 case XFA_ATTRIBUTEENUM_DataRef: { 1184 case XFA_ATTRIBUTEENUM_DataRef: {
1184 bMatchRef = bDataRef; 1185 bMatchRef = bDataRef;
1185 bParentDataRef = TRUE; 1186 bParentDataRef = TRUE;
1186 if (!pDataNode && bDataRef) { 1187 if (!pDataNode && bDataRef) {
1187 CFX_WideStringC wsRef = 1188 CFX_WideStringC wsRef =
1188 pTemplateNodeBind->GetCData(XFA_ATTRIBUTE_Ref); 1189 pTemplateNodeBind->GetCData(XFA_ATTRIBUTE_Ref);
1189 FX_DWORD dFlags = 1190 FX_DWORD dFlags =
1190 XFA_RESOLVENODE_Children | XFA_RESOLVENODE_CreateNode; 1191 XFA_RESOLVENODE_Children | XFA_RESOLVENODE_CreateNode;
1191 XFA_RESOLVENODE_RS rs; 1192 XFA_RESOLVENODE_RS rs;
1192 pDocument->GetScriptContext()->ResolveObjects(pDataScope, wsRef, rs, 1193 pDocument->GetScriptContext()->ResolveObjects(pDataScope, wsRef, rs,
1193 dFlags, pTemplateNode); 1194 dFlags, pTemplateNode);
1194 CXFA_Object* pObject = (rs.nodes.GetSize() > 0) ? rs.nodes[0] : NULL; 1195 CXFA_Object* pObject = (rs.nodes.GetSize() > 0) ? rs.nodes[0] : NULL;
1195 pDataNode = 1196 pDataNode = ToNode(pObject);
1196 (pObject && pObject->IsNode()) ? (CXFA_Node*)pObject : NULL;
1197 if (pDataNode) { 1197 if (pDataNode) {
1198 XFA_DataMerge_CreateDataBinding( 1198 XFA_DataMerge_CreateDataBinding(
1199 pFormNode, pDataNode, 1199 pFormNode, pDataNode,
1200 rs.dwFlags == XFA_RESOVENODE_RSTYPE_ExistNodes); 1200 rs.dwFlags == XFA_RESOVENODE_RSTYPE_ExistNodes);
1201 } else { 1201 } else {
1202 XFA_DataMerge_FormValueNode_MatchNoneCreateChild(pFormNode); 1202 XFA_DataMerge_FormValueNode_MatchNoneCreateChild(pFormNode);
1203 } 1203 }
1204 } 1204 }
1205 } break; 1205 } break;
1206 default: 1206 default:
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1272 } break; 1272 } break;
1273 case XFA_ATTRIBUTEENUM_Global: { 1273 case XFA_ATTRIBUTEENUM_Global: {
1274 FX_DWORD dwNameHash = pFormNode->GetNameHash(); 1274 FX_DWORD dwNameHash = pFormNode->GetNameHash();
1275 if (dwNameHash != 0 && !pDataNode) { 1275 if (dwNameHash != 0 && !pDataNode) {
1276 pDataNode = XFA_DataMerge_GetGlobalBinding(pDocument, dwNameHash); 1276 pDataNode = XFA_DataMerge_GetGlobalBinding(pDocument, dwNameHash);
1277 if (!pDataNode) { 1277 if (!pDataNode) {
1278 XFA_ELEMENT eDataNodeType = eClassID == XFA_ELEMENT_Subform 1278 XFA_ELEMENT eDataNodeType = eClassID == XFA_ELEMENT_Subform
1279 ? XFA_ELEMENT_DataGroup 1279 ? XFA_ELEMENT_DataGroup
1280 : XFA_ELEMENT_DataValue; 1280 : XFA_ELEMENT_DataValue;
1281 CXFA_Node* pRecordNode = 1281 CXFA_Node* pRecordNode =
1282 (CXFA_Node*)pDocument->GetXFAObject(XFA_HASHCODE_Record); 1282 ToNode(pDocument->GetXFAObject(XFA_HASHCODE_Record));
1283 pDataNode = XFA_DataDescription_MaybeCreateDataNode( 1283 pDataNode = XFA_DataDescription_MaybeCreateDataNode(
1284 pDocument, pRecordNode, eDataNodeType, 1284 pDocument, pRecordNode, eDataNodeType,
1285 pFormNode->GetCData(XFA_ATTRIBUTE_Name)); 1285 pFormNode->GetCData(XFA_ATTRIBUTE_Name));
1286 } 1286 }
1287 if (pDataNode) { 1287 if (pDataNode) {
1288 XFA_DataMerge_CreateDataBinding(pFormNode, pDataNode, FALSE); 1288 XFA_DataMerge_CreateDataBinding(pFormNode, pDataNode, FALSE);
1289 XFA_DataMerge_RegisterGlobalBinding( 1289 XFA_DataMerge_RegisterGlobalBinding(
1290 pDocument, pFormNode->GetNameHash(), pDataNode); 1290 pDocument, pFormNode->GetNameHash(), pDataNode);
1291 } 1291 }
1292 } 1292 }
1293 } break; 1293 } break;
1294 case XFA_ATTRIBUTEENUM_DataRef: { 1294 case XFA_ATTRIBUTEENUM_DataRef: {
1295 if (!pDataNode) { 1295 if (!pDataNode) {
1296 CFX_WideStringC wsRef = pTemplateNodeBind->GetCData(XFA_ATTRIBUTE_Ref); 1296 CFX_WideStringC wsRef = pTemplateNodeBind->GetCData(XFA_ATTRIBUTE_Ref);
1297 FX_DWORD dFlags = XFA_RESOLVENODE_Children | 1297 FX_DWORD dFlags = XFA_RESOLVENODE_Children |
1298 XFA_RESOLVENODE_Attributes | 1298 XFA_RESOLVENODE_Attributes |
1299 XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_Parent | 1299 XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_Parent |
1300 XFA_RESOLVENODE_CreateNode; 1300 XFA_RESOLVENODE_CreateNode;
1301 XFA_RESOLVENODE_RS rs; 1301 XFA_RESOLVENODE_RS rs;
1302 pDocument->GetScriptContext()->ResolveObjects(pDataScope, wsRef, rs, 1302 pDocument->GetScriptContext()->ResolveObjects(pDataScope, wsRef, rs,
1303 dFlags, pTemplateNode); 1303 dFlags, pTemplateNode);
1304 CXFA_Object* pObject = (rs.nodes.GetSize() > 0) ? rs.nodes[0] : NULL; 1304 CXFA_Object* pObject = (rs.nodes.GetSize() > 0) ? rs.nodes[0] : NULL;
1305 pDataNode = (pObject && pObject->IsNode()) ? (CXFA_Node*)pObject : NULL; 1305 pDataNode = ToNode(pObject);
1306 if (pDataNode) { 1306 if (pDataNode) {
1307 XFA_DataMerge_CreateDataBinding(pFormNode, pDataNode, FALSE); 1307 XFA_DataMerge_CreateDataBinding(pFormNode, pDataNode, FALSE);
1308 } 1308 }
1309 } 1309 }
1310 } break; 1310 } break;
1311 } 1311 }
1312 } 1312 }
1313 if(eClassID == XFA_ELEMENT_Subform || eClassID == XFA_ELEMENT_ExclGroup || eClas sID == XFA_ELEMENT_SubformSet || eClassID == XFA_ELEMENT_Area || eClassID == XFA _ELEMENT_PageArea) 1313 if(eClassID == XFA_ELEMENT_Subform || eClassID == XFA_ELEMENT_ExclGroup || eClas sID == XFA_ELEMENT_SubformSet || eClassID == XFA_ELEMENT_Area || eClassID == XFA _ELEMENT_PageArea)
1314 { 1314 {
1315 for (CXFA_Node* pFormChild = pFormNode->GetNodeItem(XFA_NODEITEM_FirstChild); 1315 for (CXFA_Node* pFormChild = pFormNode->GetNodeItem(XFA_NODEITEM_FirstChild);
(...skipping 14 matching lines...) Expand all
1330 CXFA_Node* XFA_DataMerge_FindDataScope(CXFA_Node* pParentFormNode) { 1330 CXFA_Node* XFA_DataMerge_FindDataScope(CXFA_Node* pParentFormNode) {
1331 for (CXFA_Node* pRootBoundNode = pParentFormNode; 1331 for (CXFA_Node* pRootBoundNode = pParentFormNode;
1332 pRootBoundNode && 1332 pRootBoundNode &&
1333 pRootBoundNode->GetObjectType() == XFA_OBJECTTYPE_ContainerNode; 1333 pRootBoundNode->GetObjectType() == XFA_OBJECTTYPE_ContainerNode;
1334 pRootBoundNode = pRootBoundNode->GetNodeItem(XFA_NODEITEM_Parent)) { 1334 pRootBoundNode = pRootBoundNode->GetNodeItem(XFA_NODEITEM_Parent)) {
1335 CXFA_Node* pDataScope = pRootBoundNode->GetBindData(); 1335 CXFA_Node* pDataScope = pRootBoundNode->GetBindData();
1336 if (pDataScope) { 1336 if (pDataScope) {
1337 return pDataScope; 1337 return pDataScope;
1338 } 1338 }
1339 } 1339 }
1340 return (CXFA_Node*)pParentFormNode->GetDocument()->GetXFAObject( 1340 return ToNode(
1341 XFA_HASHCODE_Data); 1341 pParentFormNode->GetDocument()->GetXFAObject(XFA_HASHCODE_Data));
1342 } 1342 }
1343 void CXFA_Document::DataMerge_UpdateBindingRelations( 1343 void CXFA_Document::DataMerge_UpdateBindingRelations(
1344 CXFA_Node* pFormUpdateRoot) { 1344 CXFA_Node* pFormUpdateRoot) {
1345 CXFA_Node* pDataScope = XFA_DataMerge_FindDataScope( 1345 CXFA_Node* pDataScope = XFA_DataMerge_FindDataScope(
1346 pFormUpdateRoot->GetNodeItem(XFA_NODEITEM_Parent)); 1346 pFormUpdateRoot->GetNodeItem(XFA_NODEITEM_Parent));
1347 if (!pDataScope) { 1347 if (!pDataScope) {
1348 return; 1348 return;
1349 } 1349 }
1350 #ifdef XFA_DATAMERGE_UPDATEBINDINGRELATIONS_DFS 1350 #ifdef XFA_DATAMERGE_UPDATEBINDINGRELATIONS_DFS
1351 XFA_DataMerge_UpdateBindingRelations(this, pFormUpdateRoot, pDataScope, FALSE, 1351 XFA_DataMerge_UpdateBindingRelations(this, pFormUpdateRoot, pDataScope, FALSE,
1352 FALSE); 1352 FALSE);
1353 XFA_DataMerge_UpdateBindingRelations(this, pFormUpdateRoot, pDataScope, TRUE, 1353 XFA_DataMerge_UpdateBindingRelations(this, pFormUpdateRoot, pDataScope, TRUE,
1354 FALSE); 1354 FALSE);
1355 #else 1355 #else
1356 CFX_PtrList rgFormNodeList, rgDataScopeList; 1356 CFX_PtrList rgFormNodeList, rgDataScopeList;
1357 rgFormNodeList.AddTail(pFormUpdateRoot); 1357 rgFormNodeList.AddTail(pFormUpdateRoot);
1358 rgDataScopeList.AddTail(pDataScope); 1358 rgDataScopeList.AddTail(pDataScope);
1359 while (rgFormNodeList.GetCount()) { 1359 while (rgFormNodeList.GetCount()) {
1360 FX_POSITION pos; 1360 FX_POSITION pos;
1361 pos = rgFormNodeList.GetHeadPosition(); 1361 pos = rgFormNodeList.GetHeadPosition();
1362 CXFA_Node* pCurFormNode = (CXFA_Node*)rgFormNodeList.GetAt(pos); 1362 CXFA_Node* pCurFormNode = ToNode(rgFormNodeList.GetAt(pos));
1363 rgFormNodeList.RemoveAt(pos); 1363 rgFormNodeList.RemoveAt(pos);
1364 pos = rgDataScopeList.GetHeadPosition(); 1364 pos = rgDataScopeList.GetHeadPosition();
1365 CXFA_Node* pCurDataScope = (CXFA_Node*)rgDataScopeList.GetAt(pos); 1365 CXFA_Node* pCurDataScope = ToNode(rgDataScopeList.GetAt(pos));
1366 rgDataScopeList.RemoveAt(pos); 1366 rgDataScopeList.RemoveAt(pos);
1367 XFA_DataMerge_UpdateBindingRelations(this, pCurFormNode, pCurDataScope, 1367 XFA_DataMerge_UpdateBindingRelations(this, pCurFormNode, pCurDataScope,
1368 rgFormNodeList, rgDataScopeList); 1368 rgFormNodeList, rgDataScopeList);
1369 } 1369 }
1370 #endif 1370 #endif
1371 } 1371 }
1372 CXFA_Node* CXFA_Document::GetNotBindNode(CXFA_ObjArray& arrayNodes) { 1372 CXFA_Node* CXFA_Document::GetNotBindNode(CXFA_ObjArray& arrayNodes) {
1373 for (int32_t i = 0; i < arrayNodes.GetSize(); i++) { 1373 for (int32_t i = 0; i < arrayNodes.GetSize(); i++) {
1374 CXFA_Object* pObject = arrayNodes[i]; 1374 CXFA_Node* pNode = arrayNodes[i]->AsNode();
1375 if (!pObject->IsNode()) { 1375 if (pNode && !pNode->HasBindItem())
1376 continue; 1376 return pNode;
1377 }
1378 if (((CXFA_Node*)pObject)->HasBindItem()) {
1379 continue;
1380 }
1381 return ((CXFA_Node*)pObject);
1382 } 1377 }
1383 return NULL; 1378 return nullptr;
1384 } 1379 }
1385 void CXFA_Document::DoDataMerge() { 1380 void CXFA_Document::DoDataMerge() {
1386 CXFA_Node* pDatasetsRoot = (CXFA_Node*)GetXFAObject(XFA_HASHCODE_Datasets); 1381 CXFA_Node* pDatasetsRoot = ToNode(GetXFAObject(XFA_HASHCODE_Datasets));
1387 if (!pDatasetsRoot) { 1382 if (!pDatasetsRoot) {
1388 IFDE_XMLElement* pDatasetsXMLNode = 1383 IFDE_XMLElement* pDatasetsXMLNode =
1389 IFDE_XMLElement::Create(FX_WSTRC(L"xfa:datasets")); 1384 IFDE_XMLElement::Create(FX_WSTRC(L"xfa:datasets"));
1390 FXSYS_assert(pDatasetsXMLNode); 1385 FXSYS_assert(pDatasetsXMLNode);
1391 pDatasetsXMLNode->SetString( 1386 pDatasetsXMLNode->SetString(
1392 FX_WSTRC(L"xmlns:xfa"), 1387 FX_WSTRC(L"xmlns:xfa"),
1393 FX_WSTRC(L"http://www.xfa.org/schema/xfa-data/1.0/")); 1388 FX_WSTRC(L"http://www.xfa.org/schema/xfa-data/1.0/"));
1394 pDatasetsRoot = CreateNode(XFA_XDPPACKET_Datasets, XFA_ELEMENT_DataModel); 1389 pDatasetsRoot = CreateNode(XFA_XDPPACKET_Datasets, XFA_ELEMENT_DataModel);
1395 pDatasetsRoot->SetCData(XFA_ATTRIBUTE_Name, FX_WSTRC(L"datasets")); 1390 pDatasetsRoot->SetCData(XFA_ATTRIBUTE_Name, FX_WSTRC(L"datasets"));
1396 m_pRootNode->GetXMLMappingNode()->InsertChildNode(pDatasetsXMLNode); 1391 m_pRootNode->GetXMLMappingNode()->InsertChildNode(pDatasetsXMLNode);
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
1530 pNode = sIterator.MoveToNext(); 1525 pNode = sIterator.MoveToNext();
1531 } 1526 }
1532 } else { 1527 } else {
1533 pNode->SetFlag(XFA_NODEFLAG_Initialized); 1528 pNode->SetFlag(XFA_NODEFLAG_Initialized);
1534 pNode = sIterator.MoveToNext(); 1529 pNode = sIterator.MoveToNext();
1535 } 1530 }
1536 } 1531 }
1537 } 1532 }
1538 } 1533 }
1539 void CXFA_Document::DoDataRemerge(FX_BOOL bDoDataMerge) { 1534 void CXFA_Document::DoDataRemerge(FX_BOOL bDoDataMerge) {
1540 CXFA_Node* pFormRoot = (CXFA_Node*)this->GetXFAObject(XFA_HASHCODE_Form); 1535 CXFA_Node* pFormRoot = ToNode(GetXFAObject(XFA_HASHCODE_Form));
1541 if (pFormRoot) { 1536 if (pFormRoot) {
1542 while (CXFA_Node* pNode = pFormRoot->GetNodeItem(XFA_NODEITEM_FirstChild)) { 1537 while (CXFA_Node* pNode = pFormRoot->GetNodeItem(XFA_NODEITEM_FirstChild)) {
1543 pFormRoot->RemoveChild(pNode); 1538 pFormRoot->RemoveChild(pNode);
1544 } 1539 }
1545 pFormRoot->SetObject(XFA_ATTRIBUTE_BindingNode, NULL); 1540 pFormRoot->SetObject(XFA_ATTRIBUTE_BindingNode, NULL);
1546 } 1541 }
1547 XFA_DataMerge_ClearGlobalBinding(this); 1542 XFA_DataMerge_ClearGlobalBinding(this);
1548 if (bDoDataMerge) { 1543 if (bDoDataMerge) {
1549 DoDataMerge(); 1544 DoDataMerge();
1550 } 1545 }
1551 CXFA_LayoutProcessor* pLayoutProcessor = GetLayoutProcessor(); 1546 CXFA_LayoutProcessor* pLayoutProcessor = GetLayoutProcessor();
1552 pLayoutProcessor->SetForceReLayout(TRUE); 1547 pLayoutProcessor->SetForceReLayout(TRUE);
1553 } 1548 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698