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 "core/fxcrt/include/fx_ext.h" | 7 #include "core/fxcrt/include/fx_ext.h" |
8 #include "xfa/fxfa/app/xfa_ffnotify.h" | 8 #include "xfa/fxfa/app/xfa_ffnotify.h" |
9 #include "xfa/fxfa/fm2js/xfa_fm2jsapi.h" | 9 #include "xfa/fxfa/fm2js/xfa_fm2jsapi.h" |
10 #include "xfa/fxfa/parser/xfa_basic_imp.h" | 10 #include "xfa/fxfa/parser/xfa_basic_imp.h" |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 AddPurgeNode(m_pRootNode); | 89 AddPurgeNode(m_pRootNode); |
90 } | 90 } |
91 m_pRootNode = pNewRoot; | 91 m_pRootNode = pNewRoot; |
92 RemovePurgeNode(pNewRoot); | 92 RemovePurgeNode(pNewRoot); |
93 } | 93 } |
94 CXFA_FFNotify* CXFA_Document::GetNotify() const { | 94 CXFA_FFNotify* CXFA_Document::GetNotify() const { |
95 return m_pParser->GetNotify(); | 95 return m_pParser->GetNotify(); |
96 } | 96 } |
97 CXFA_Object* CXFA_Document::GetXFAObject(const CFX_WideStringC& wsNodeName) { | 97 CXFA_Object* CXFA_Document::GetXFAObject(const CFX_WideStringC& wsNodeName) { |
98 return GetXFAObject( | 98 return GetXFAObject( |
99 FX_HashCode_String_GetW(wsNodeName.GetPtr(), wsNodeName.GetLength())); | 99 FX_HashCode_String_GetW(wsNodeName.raw_str(), wsNodeName.GetLength())); |
100 } | 100 } |
101 CXFA_Object* CXFA_Document::GetXFAObject(uint32_t dwNodeNameHash) { | 101 CXFA_Object* CXFA_Document::GetXFAObject(uint32_t dwNodeNameHash) { |
102 switch (dwNodeNameHash) { | 102 switch (dwNodeNameHash) { |
103 case XFA_HASHCODE_Data: { | 103 case XFA_HASHCODE_Data: { |
104 CXFA_Node* pDatasetsNode = ToNode(GetXFAObject(XFA_HASHCODE_Datasets)); | 104 CXFA_Node* pDatasetsNode = ToNode(GetXFAObject(XFA_HASHCODE_Datasets)); |
105 if (!pDatasetsNode) { | 105 if (!pDatasetsNode) { |
106 return NULL; | 106 return NULL; |
107 } | 107 } |
108 for (CXFA_Node* pDatasetsChild = | 108 for (CXFA_Node* pDatasetsChild = |
109 pDatasetsNode->GetFirstChildByClass(XFA_ELEMENT_DataGroup); | 109 pDatasetsNode->GetFirstChildByClass(XFA_ELEMENT_DataGroup); |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 if (!pTemplateRoot) { | 360 if (!pTemplateRoot) { |
361 return; | 361 return; |
362 } | 362 } |
363 CFX_MapPtrTemplate<uint32_t, CXFA_Node*> mIDMap; | 363 CFX_MapPtrTemplate<uint32_t, CXFA_Node*> mIDMap; |
364 CXFA_NodeSet sUseNodes; | 364 CXFA_NodeSet sUseNodes; |
365 CXFA_NodeIterator sIterator(pTemplateRoot); | 365 CXFA_NodeIterator sIterator(pTemplateRoot); |
366 for (CXFA_Node* pNode = sIterator.GetCurrent(); pNode; | 366 for (CXFA_Node* pNode = sIterator.GetCurrent(); pNode; |
367 pNode = sIterator.MoveToNext()) { | 367 pNode = sIterator.MoveToNext()) { |
368 CFX_WideStringC wsIDVal; | 368 CFX_WideStringC wsIDVal; |
369 if (pNode->TryCData(XFA_ATTRIBUTE_Id, wsIDVal) && !wsIDVal.IsEmpty()) { | 369 if (pNode->TryCData(XFA_ATTRIBUTE_Id, wsIDVal) && !wsIDVal.IsEmpty()) { |
370 mIDMap[FX_HashCode_String_GetW(wsIDVal.GetPtr(), wsIDVal.GetLength())] = | 370 mIDMap[FX_HashCode_String_GetW(wsIDVal.raw_str(), wsIDVal.GetLength())] = |
371 pNode; | 371 pNode; |
372 } | 372 } |
373 CFX_WideStringC wsUseVal; | 373 CFX_WideStringC wsUseVal; |
374 if (pNode->TryCData(XFA_ATTRIBUTE_Use, wsUseVal) && !wsUseVal.IsEmpty()) { | 374 if (pNode->TryCData(XFA_ATTRIBUTE_Use, wsUseVal) && !wsUseVal.IsEmpty()) { |
375 sUseNodes.Add(pNode); | 375 sUseNodes.Add(pNode); |
376 } else if (pNode->TryCData(XFA_ATTRIBUTE_Usehref, wsUseVal) && | 376 } else if (pNode->TryCData(XFA_ATTRIBUTE_Usehref, wsUseVal) && |
377 !wsUseVal.IsEmpty()) { | 377 !wsUseVal.IsEmpty()) { |
378 sUseNodes.Add(pNode); | 378 sUseNodes.Add(pNode); |
379 } | 379 } |
380 } | 380 } |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
422 XFA_RESOLVENODE_Properties | XFA_RESOLVENODE_Parent | | 422 XFA_RESOLVENODE_Properties | XFA_RESOLVENODE_Parent | |
423 XFA_RESOLVENODE_Siblings; | 423 XFA_RESOLVENODE_Siblings; |
424 XFA_RESOLVENODE_RS resoveNodeRS; | 424 XFA_RESOLVENODE_RS resoveNodeRS; |
425 int32_t iRet = m_pScriptContext->ResolveObjects(pUseHrefNode, wsSOM, | 425 int32_t iRet = m_pScriptContext->ResolveObjects(pUseHrefNode, wsSOM, |
426 resoveNodeRS, dwFlag); | 426 resoveNodeRS, dwFlag); |
427 if (iRet > 0 && resoveNodeRS.nodes[0]->IsNode()) { | 427 if (iRet > 0 && resoveNodeRS.nodes[0]->IsNode()) { |
428 pProtoNode = resoveNodeRS.nodes[0]->AsNode(); | 428 pProtoNode = resoveNodeRS.nodes[0]->AsNode(); |
429 } | 429 } |
430 } else if (!wsID.IsEmpty()) { | 430 } else if (!wsID.IsEmpty()) { |
431 if (!mIDMap.Lookup( | 431 if (!mIDMap.Lookup( |
432 FX_HashCode_String_GetW(wsID.GetPtr(), wsID.GetLength()), | 432 FX_HashCode_String_GetW(wsID.raw_str(), wsID.GetLength()), |
433 pProtoNode)) { | 433 pProtoNode)) { |
434 continue; | 434 continue; |
435 } | 435 } |
436 } | 436 } |
437 if (!pProtoNode) { | 437 if (!pProtoNode) { |
438 continue; | 438 continue; |
439 } | 439 } |
440 XFA_ProtoMerge_MergeNode(this, pUseHrefNode, pProtoNode); | 440 XFA_ProtoMerge_MergeNode(this, pUseHrefNode, pProtoNode); |
441 } | 441 } |
442 } | 442 } |
OLD | NEW |