| OLD | NEW |
| 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/fxfa/parser/xfa_document_datamerger_imp.h" | 7 #include "xfa/fxfa/parser/xfa_document_datamerger_imp.h" |
| 8 | 8 |
| 9 #include "core/fxcrt/include/fx_ext.h" | 9 #include "core/fxcrt/include/fx_ext.h" |
| 10 #include "xfa/fde/xml/fde_xml_imp.h" | 10 #include "xfa/fde/xml/fde_xml_imp.h" |
| (...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 391 break; | 391 break; |
| 392 } | 392 } |
| 393 } | 393 } |
| 394 return NULL; | 394 return NULL; |
| 395 } | 395 } |
| 396 static CXFA_Node* XFA_DataMerge_FindGlobalDataNode(CXFA_Document* pDocument, | 396 static CXFA_Node* XFA_DataMerge_FindGlobalDataNode(CXFA_Document* pDocument, |
| 397 CFX_WideStringC wsName, | 397 CFX_WideStringC wsName, |
| 398 CXFA_Node* pDataScope, | 398 CXFA_Node* pDataScope, |
| 399 XFA_ELEMENT eMatchNodeType) { | 399 XFA_ELEMENT eMatchNodeType) { |
| 400 uint32_t dwNameHash = | 400 uint32_t dwNameHash = |
| 401 wsName.IsEmpty() ? 0 : FX_HashCode_String_GetW(wsName.GetPtr(), | 401 wsName.IsEmpty() ? 0 : FX_HashCode_String_GetW(wsName.raw_str(), |
| 402 wsName.GetLength()); | 402 wsName.GetLength()); |
| 403 if (dwNameHash != 0) { | 403 if (dwNameHash != 0) { |
| 404 CXFA_Node* pBounded = XFA_DataMerge_GetGlobalBinding(pDocument, dwNameHash); | 404 CXFA_Node* pBounded = XFA_DataMerge_GetGlobalBinding(pDocument, dwNameHash); |
| 405 if (!pBounded) { | 405 if (!pBounded) { |
| 406 pBounded = XFA_DataMerge_ScopeMatchGlobalBinding(pDataScope, dwNameHash, | 406 pBounded = XFA_DataMerge_ScopeMatchGlobalBinding(pDataScope, dwNameHash, |
| 407 eMatchNodeType); | 407 eMatchNodeType); |
| 408 if (pBounded) { | 408 if (pBounded) { |
| 409 XFA_DataMerge_RegisterGlobalBinding(pDocument, dwNameHash, pBounded); | 409 XFA_DataMerge_RegisterGlobalBinding(pDocument, dwNameHash, pBounded); |
| 410 } | 410 } |
| 411 } | 411 } |
| 412 return pBounded; | 412 return pBounded; |
| 413 } | 413 } |
| 414 return NULL; | 414 return NULL; |
| 415 } | 415 } |
| 416 static CXFA_Node* XFA_DataMerge_FindOnceDataNode(CXFA_Document* pDocument, | 416 static CXFA_Node* XFA_DataMerge_FindOnceDataNode(CXFA_Document* pDocument, |
| 417 CFX_WideStringC wsName, | 417 CFX_WideStringC wsName, |
| 418 CXFA_Node* pDataScope, | 418 CXFA_Node* pDataScope, |
| 419 XFA_ELEMENT eMatchNodeType) { | 419 XFA_ELEMENT eMatchNodeType) { |
| 420 uint32_t dwNameHash = | 420 uint32_t dwNameHash = |
| 421 wsName.IsEmpty() ? 0 : FX_HashCode_String_GetW(wsName.GetPtr(), | 421 wsName.IsEmpty() ? 0 : FX_HashCode_String_GetW(wsName.raw_str(), |
| 422 wsName.GetLength()); | 422 wsName.GetLength()); |
| 423 if (dwNameHash != 0) { | 423 if (dwNameHash != 0) { |
| 424 for (CXFA_Node *pCurDataScope = pDataScope, *pLastDataScope = NULL; | 424 for (CXFA_Node *pCurDataScope = pDataScope, *pLastDataScope = NULL; |
| 425 pCurDataScope && | 425 pCurDataScope && |
| 426 pCurDataScope->GetPacketID() == XFA_XDPPACKET_Datasets; | 426 pCurDataScope->GetPacketID() == XFA_XDPPACKET_Datasets; |
| 427 pLastDataScope = pCurDataScope, | 427 pLastDataScope = pCurDataScope, |
| 428 pCurDataScope = | 428 pCurDataScope = |
| 429 pCurDataScope->GetNodeItem(XFA_NODEITEM_Parent)) { | 429 pCurDataScope->GetNodeItem(XFA_NODEITEM_Parent)) { |
| 430 for (CXFA_Node* pDataChild = | 430 for (CXFA_Node* pDataChild = |
| 431 pCurDataScope->GetFirstChildByName(dwNameHash); | 431 pCurDataScope->GetFirstChildByName(dwNameHash); |
| (...skipping 991 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1423 } | 1423 } |
| 1424 pFormRoot->SetObject(XFA_ATTRIBUTE_BindingNode, NULL); | 1424 pFormRoot->SetObject(XFA_ATTRIBUTE_BindingNode, NULL); |
| 1425 } | 1425 } |
| 1426 XFA_DataMerge_ClearGlobalBinding(this); | 1426 XFA_DataMerge_ClearGlobalBinding(this); |
| 1427 if (bDoDataMerge) { | 1427 if (bDoDataMerge) { |
| 1428 DoDataMerge(); | 1428 DoDataMerge(); |
| 1429 } | 1429 } |
| 1430 CXFA_LayoutProcessor* pLayoutProcessor = GetLayoutProcessor(); | 1430 CXFA_LayoutProcessor* pLayoutProcessor = GetLayoutProcessor(); |
| 1431 pLayoutProcessor->SetForceReLayout(TRUE); | 1431 pLayoutProcessor->SetForceReLayout(TRUE); |
| 1432 } | 1432 } |
| OLD | NEW |