| 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/cxfa_resolveprocessor.h" | 7 #include "xfa/fxfa/parser/cxfa_resolveprocessor.h" |
| 8 | 8 |
| 9 #include "core/fxcrt/fx_ext.h" | 9 #include "core/fxcrt/fx_ext.h" |
| 10 #include "xfa/fxfa/parser/cxfa_document.h" | 10 #include "xfa/fxfa/parser/cxfa_document.h" |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 if (nRet < 1 && rnd.m_uHashName == XFA_HASHCODE_Xfa) { | 74 if (nRet < 1 && rnd.m_uHashName == XFA_HASHCODE_Xfa) { |
| 75 rnd.m_Nodes.Add(rnd.m_pSC->GetDocument()->GetRoot()); | 75 rnd.m_Nodes.Add(rnd.m_pSC->GetDocument()->GetRoot()); |
| 76 } | 76 } |
| 77 return rnd.m_Nodes.GetSize(); | 77 return rnd.m_Nodes.GetSize(); |
| 78 } | 78 } |
| 79 int32_t CXFA_ResolveProcessor::ResolveAnyChild(CXFA_ResolveNodesData& rnd) { | 79 int32_t CXFA_ResolveProcessor::ResolveAnyChild(CXFA_ResolveNodesData& rnd) { |
| 80 CFX_WideString wsName = rnd.m_wsName; | 80 CFX_WideString wsName = rnd.m_wsName; |
| 81 CFX_WideString wsCondition = rnd.m_wsCondition; | 81 CFX_WideString wsCondition = rnd.m_wsCondition; |
| 82 CXFA_Node* findNode = nullptr; | 82 CXFA_Node* findNode = nullptr; |
| 83 CXFA_NodeArray siblings; | 83 CXFA_NodeArray siblings; |
| 84 FX_BOOL bClassName = FALSE; | 84 bool bClassName = false; |
| 85 if (wsName.GetAt(0) == '#') { | 85 if (wsName.GetAt(0) == '#') { |
| 86 bClassName = TRUE; | 86 bClassName = true; |
| 87 wsName = wsName.Right(wsName.GetLength() - 1); | 87 wsName = wsName.Right(wsName.GetLength() - 1); |
| 88 } | 88 } |
| 89 findNode = m_pNodeHelper->ResolveNodes_GetOneChild( | 89 findNode = m_pNodeHelper->ResolveNodes_GetOneChild( |
| 90 ToNode(rnd.m_CurNode), wsName.c_str(), bClassName); | 90 ToNode(rnd.m_CurNode), wsName.c_str(), bClassName); |
| 91 if (!findNode) { | 91 if (!findNode) { |
| 92 return 0; | 92 return 0; |
| 93 } | 93 } |
| 94 if (wsCondition.IsEmpty()) { | 94 if (wsCondition.IsEmpty()) { |
| 95 rnd.m_Nodes.Add(findNode); | 95 rnd.m_Nodes.Add(findNode); |
| 96 return rnd.m_Nodes.GetSize(); | 96 return rnd.m_Nodes.GetSize(); |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 259 } | 259 } |
| 260 if (nodes.GetSize() > nNum) { | 260 if (nodes.GetSize() > nNum) { |
| 261 FilterCondition(rnd, wsCondition); | 261 FilterCondition(rnd, wsCondition); |
| 262 if (nodes.GetSize() > 0) { | 262 if (nodes.GetSize() > 0) { |
| 263 return 1; | 263 return 1; |
| 264 } | 264 } |
| 265 return 0; | 265 return 0; |
| 266 } | 266 } |
| 267 } | 267 } |
| 268 if (dwStyles & XFA_RESOLVENODE_Children) { | 268 if (dwStyles & XFA_RESOLVENODE_Children) { |
| 269 FX_BOOL bSetFlag = FALSE; | 269 bool bSetFlag = false; |
| 270 if (pPageSetNode && (dwStyles & XFA_RESOLVENODE_Properties)) { | 270 if (pPageSetNode && (dwStyles & XFA_RESOLVENODE_Properties)) { |
| 271 children.Add(pPageSetNode); | 271 children.Add(pPageSetNode); |
| 272 } | 272 } |
| 273 for (int32_t i = 0; i < children.GetSize(); i++) { | 273 for (int32_t i = 0; i < children.GetSize(); i++) { |
| 274 CXFA_Node* child = children[i]; | 274 CXFA_Node* child = children[i]; |
| 275 if (dwStyles & XFA_RESOLVENODE_TagName) { | 275 if (dwStyles & XFA_RESOLVENODE_TagName) { |
| 276 if (child->GetClassHashCode() == uNameHash) { | 276 if (child->GetClassHashCode() == uNameHash) { |
| 277 nodes.Add(child); | 277 nodes.Add(child); |
| 278 } | 278 } |
| 279 } else if (child->GetNameHash() == uNameHash) { | 279 } else if (child->GetNameHash() == uNameHash) { |
| 280 nodes.Add(child); | 280 nodes.Add(child); |
| 281 } | 281 } |
| 282 if (m_pNodeHelper->NodeIsTransparent(child) && | 282 if (m_pNodeHelper->NodeIsTransparent(child) && |
| 283 child->GetElementType() != XFA_Element::PageSet) { | 283 child->GetElementType() != XFA_Element::PageSet) { |
| 284 if (!bSetFlag) { | 284 if (!bSetFlag) { |
| 285 SetStylesForChild(dwStyles, rndFind); | 285 SetStylesForChild(dwStyles, rndFind); |
| 286 bSetFlag = TRUE; | 286 bSetFlag = true; |
| 287 } | 287 } |
| 288 rndFind.m_CurNode = child; | 288 rndFind.m_CurNode = child; |
| 289 CFX_WideString wsSaveCondition = rndFind.m_wsCondition; | 289 CFX_WideString wsSaveCondition = rndFind.m_wsCondition; |
| 290 rndFind.m_wsCondition.clear(); | 290 rndFind.m_wsCondition.clear(); |
| 291 ResolveNormal(rndFind); | 291 ResolveNormal(rndFind); |
| 292 rndFind.m_wsCondition = wsSaveCondition; | 292 rndFind.m_wsCondition = wsSaveCondition; |
| 293 if (rndFind.m_Nodes.GetSize() > 0) { | 293 if (rndFind.m_Nodes.GetSize() > 0) { |
| 294 nodes.Append(rndFind.m_Nodes); | 294 nodes.Append(rndFind.m_Nodes); |
| 295 rndFind.m_Nodes.RemoveAll(); | 295 rndFind.m_Nodes.RemoveAll(); |
| 296 } | 296 } |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 343 return 1; | 343 return 1; |
| 344 } | 344 } |
| 345 return 0; | 345 return 0; |
| 346 } | 346 } |
| 347 CXFA_Node* pProp = nullptr; | 347 CXFA_Node* pProp = nullptr; |
| 348 if (XFA_Element::Subform == curNode->GetElementType() && | 348 if (XFA_Element::Subform == curNode->GetElementType() && |
| 349 XFA_HASHCODE_Occur == uNameHash) { | 349 XFA_HASHCODE_Occur == uNameHash) { |
| 350 CXFA_Node* pInstanceManager = | 350 CXFA_Node* pInstanceManager = |
| 351 curNode->AsNode()->GetInstanceMgrOfSubform(); | 351 curNode->AsNode()->GetInstanceMgrOfSubform(); |
| 352 if (pInstanceManager) { | 352 if (pInstanceManager) { |
| 353 pProp = pInstanceManager->GetProperty(0, XFA_Element::Occur, TRUE); | 353 pProp = pInstanceManager->GetProperty(0, XFA_Element::Occur, true); |
| 354 } | 354 } |
| 355 } else { | 355 } else { |
| 356 XFA_Element eType = XFA_GetElementTypeForName(wsName.AsStringC()); | 356 XFA_Element eType = XFA_GetElementTypeForName(wsName.AsStringC()); |
| 357 if (eType != XFA_Element::Unknown) { | 357 if (eType != XFA_Element::Unknown) { |
| 358 pProp = curNode->AsNode()->GetProperty(0, eType, | 358 pProp = curNode->AsNode()->GetProperty(0, eType, |
| 359 eType != XFA_Element::PageSet); | 359 eType != XFA_Element::PageSet); |
| 360 } | 360 } |
| 361 } | 361 } |
| 362 if (pProp) { | 362 if (pProp) { |
| 363 nodes.Add(pProp); | 363 nodes.Add(pProp); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 410 if (dwStyles & XFA_RESOLVENODE_TagName) { | 410 if (dwStyles & XFA_RESOLVENODE_TagName) { |
| 411 if (child->GetClassHashCode() == uNameHash) { | 411 if (child->GetClassHashCode() == uNameHash) { |
| 412 nodes.Add(child); | 412 nodes.Add(child); |
| 413 } | 413 } |
| 414 } else if (child->GetNameHash() == uNameHash) { | 414 } else if (child->GetNameHash() == uNameHash) { |
| 415 nodes.Add(child); | 415 nodes.Add(child); |
| 416 } | 416 } |
| 417 const XFA_PROPERTY* pPropert = XFA_GetPropertyOfElement( | 417 const XFA_PROPERTY* pPropert = XFA_GetPropertyOfElement( |
| 418 parentNode->GetElementType(), child->GetElementType(), | 418 parentNode->GetElementType(), child->GetElementType(), |
| 419 XFA_XDPPACKET_UNKNOWN); | 419 XFA_XDPPACKET_UNKNOWN); |
| 420 FX_BOOL bInnerSearch = FALSE; | 420 bool bInnerSearch = false; |
| 421 if (pPropert) { | 421 if (pPropert) { |
| 422 if ((child->GetElementType() == XFA_Element::Variables || | 422 if ((child->GetElementType() == XFA_Element::Variables || |
| 423 child->GetElementType() == XFA_Element::PageSet)) { | 423 child->GetElementType() == XFA_Element::PageSet)) { |
| 424 bInnerSearch = TRUE; | 424 bInnerSearch = true; |
| 425 } | 425 } |
| 426 } else { | 426 } else { |
| 427 if (m_pNodeHelper->NodeIsTransparent(child)) { | 427 if (m_pNodeHelper->NodeIsTransparent(child)) { |
| 428 bInnerSearch = TRUE; | 428 bInnerSearch = true; |
| 429 } | 429 } |
| 430 } | 430 } |
| 431 if (bInnerSearch) { | 431 if (bInnerSearch) { |
| 432 rndFind.m_CurNode = child; | 432 rndFind.m_CurNode = child; |
| 433 CFX_WideString wsOriginCondition = rndFind.m_wsCondition; | 433 CFX_WideString wsOriginCondition = rndFind.m_wsCondition; |
| 434 rndFind.m_wsCondition.clear(); | 434 rndFind.m_wsCondition.clear(); |
| 435 uint32_t dwOriginStyle = rndFind.m_dwStyles; | 435 uint32_t dwOriginStyle = rndFind.m_dwStyles; |
| 436 rndFind.m_dwStyles = dwOriginStyle | XFA_RESOLVENODE_ALL; | 436 rndFind.m_dwStyles = dwOriginStyle | XFA_RESOLVENODE_ALL; |
| 437 ResolveNormal(rndFind); | 437 ResolveNormal(rndFind); |
| 438 rndFind.m_dwStyles = dwOriginStyle; | 438 rndFind.m_dwStyles = dwOriginStyle; |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 517 CFX_WideString& wsName = rnd.m_wsName; | 517 CFX_WideString& wsName = rnd.m_wsName; |
| 518 CFX_WideString& wsCondition = rnd.m_wsCondition; | 518 CFX_WideString& wsCondition = rnd.m_wsCondition; |
| 519 FX_WCHAR* pNameBuf = wsName.GetBuffer(iLength - nStart); | 519 FX_WCHAR* pNameBuf = wsName.GetBuffer(iLength - nStart); |
| 520 FX_WCHAR* pConditionBuf = wsCondition.GetBuffer(iLength - nStart); | 520 FX_WCHAR* pConditionBuf = wsCondition.GetBuffer(iLength - nStart); |
| 521 int32_t nNameCount = 0; | 521 int32_t nNameCount = 0; |
| 522 int32_t nConditionCount = 0; | 522 int32_t nConditionCount = 0; |
| 523 CFX_Int32Array stack; | 523 CFX_Int32Array stack; |
| 524 int32_t nType = -1; | 524 int32_t nType = -1; |
| 525 const FX_WCHAR* pSrc = wsExpression.c_str(); | 525 const FX_WCHAR* pSrc = wsExpression.c_str(); |
| 526 FX_WCHAR wPrev = 0, wCur; | 526 FX_WCHAR wPrev = 0, wCur; |
| 527 FX_BOOL bIsCondition = FALSE; | 527 bool bIsCondition = false; |
| 528 while (nStart < iLength) { | 528 while (nStart < iLength) { |
| 529 wCur = pSrc[nStart++]; | 529 wCur = pSrc[nStart++]; |
| 530 if (wCur == '.') { | 530 if (wCur == '.') { |
| 531 if (wPrev == '\\') { | 531 if (wPrev == '\\') { |
| 532 pNameBuf[nNameCount - 1] = wPrev = '.'; | 532 pNameBuf[nNameCount - 1] = wPrev = '.'; |
| 533 continue; | 533 continue; |
| 534 } | 534 } |
| 535 if (nNameCount == 0) { | 535 if (nNameCount == 0) { |
| 536 rnd.m_dwStyles |= XFA_RESOLVENODE_AnyChild; | 536 rnd.m_dwStyles |= XFA_RESOLVENODE_AnyChild; |
| 537 continue; | 537 continue; |
| 538 } | 538 } |
| 539 FX_WCHAR wLookahead = nStart < iLength ? pSrc[nStart] : 0; | 539 FX_WCHAR wLookahead = nStart < iLength ? pSrc[nStart] : 0; |
| 540 if (wLookahead != '[' && wLookahead != '(') { | 540 if (wLookahead != '[' && wLookahead != '(') { |
| 541 if (nType < 0) { | 541 if (nType < 0) { |
| 542 break; | 542 break; |
| 543 } | 543 } |
| 544 } | 544 } |
| 545 } | 545 } |
| 546 if (wCur == '[' || wCur == '(') { | 546 if (wCur == '[' || wCur == '(') { |
| 547 bIsCondition = TRUE; | 547 bIsCondition = true; |
| 548 } else if (wCur == '.' && nStart < iLength && | 548 } else if (wCur == '.' && nStart < iLength && |
| 549 (pSrc[nStart] == '[' || pSrc[nStart] == '(')) { | 549 (pSrc[nStart] == '[' || pSrc[nStart] == '(')) { |
| 550 bIsCondition = TRUE; | 550 bIsCondition = true; |
| 551 } | 551 } |
| 552 if (bIsCondition) { | 552 if (bIsCondition) { |
| 553 pConditionBuf[nConditionCount++] = wCur; | 553 pConditionBuf[nConditionCount++] = wCur; |
| 554 } else { | 554 } else { |
| 555 pNameBuf[nNameCount++] = wCur; | 555 pNameBuf[nNameCount++] = wCur; |
| 556 } | 556 } |
| 557 FX_BOOL bRecursive = TRUE; | 557 bool bRecursive = true; |
| 558 switch (nType) { | 558 switch (nType) { |
| 559 case 0: | 559 case 0: |
| 560 if (wCur == ']') { | 560 if (wCur == ']') { |
| 561 nType = ResolvePopStack(stack); | 561 nType = ResolvePopStack(stack); |
| 562 bRecursive = FALSE; | 562 bRecursive = false; |
| 563 } | 563 } |
| 564 break; | 564 break; |
| 565 case 1: | 565 case 1: |
| 566 if (wCur == ')') { | 566 if (wCur == ')') { |
| 567 nType = ResolvePopStack(stack); | 567 nType = ResolvePopStack(stack); |
| 568 bRecursive = FALSE; | 568 bRecursive = false; |
| 569 } | 569 } |
| 570 break; | 570 break; |
| 571 case 2: | 571 case 2: |
| 572 if (wCur == '"') { | 572 if (wCur == '"') { |
| 573 nType = ResolvePopStack(stack); | 573 nType = ResolvePopStack(stack); |
| 574 bRecursive = FALSE; | 574 bRecursive = false; |
| 575 } | 575 } |
| 576 break; | 576 break; |
| 577 } | 577 } |
| 578 if (bRecursive) { | 578 if (bRecursive) { |
| 579 switch (wCur) { | 579 switch (wCur) { |
| 580 case '[': | 580 case '[': |
| 581 stack.Add(nType); | 581 stack.Add(nType); |
| 582 nType = 0; | 582 nType = 0; |
| 583 break; | 583 break; |
| 584 case '(': | 584 case '(': |
| (...skipping 20 matching lines...) Expand all Loading... |
| 605 rnd.m_uHashName = | 605 rnd.m_uHashName = |
| 606 static_cast<XFA_HashCode>(FX_HashCode_GetW(wsName.AsStringC(), false)); | 606 static_cast<XFA_HashCode>(FX_HashCode_GetW(wsName.AsStringC(), false)); |
| 607 return nStart; | 607 return nStart; |
| 608 } | 608 } |
| 609 void CXFA_ResolveProcessor::ConditionArray(int32_t iCurIndex, | 609 void CXFA_ResolveProcessor::ConditionArray(int32_t iCurIndex, |
| 610 CFX_WideString wsCondition, | 610 CFX_WideString wsCondition, |
| 611 int32_t iFoundCount, | 611 int32_t iFoundCount, |
| 612 CXFA_ResolveNodesData& rnd) { | 612 CXFA_ResolveNodesData& rnd) { |
| 613 CXFA_NodeArray& findNodes = (CXFA_NodeArray&)rnd.m_Nodes; | 613 CXFA_NodeArray& findNodes = (CXFA_NodeArray&)rnd.m_Nodes; |
| 614 int32_t iLen = wsCondition.GetLength(); | 614 int32_t iLen = wsCondition.GetLength(); |
| 615 FX_BOOL bRelative = FALSE; | 615 bool bRelative = false; |
| 616 FX_BOOL bAll = FALSE; | 616 bool bAll = false; |
| 617 int32_t i = 1; | 617 int32_t i = 1; |
| 618 for (; i < iLen; ++i) { | 618 for (; i < iLen; ++i) { |
| 619 FX_WCHAR ch = wsCondition[i]; | 619 FX_WCHAR ch = wsCondition[i]; |
| 620 if (ch == ' ') { | 620 if (ch == ' ') { |
| 621 continue; | 621 continue; |
| 622 } | 622 } |
| 623 if (ch == '+' || ch == '-') { | 623 if (ch == '+' || ch == '-') { |
| 624 bRelative = TRUE; | 624 bRelative = true; |
| 625 break; | 625 break; |
| 626 } else if (ch == '*') { | 626 } else if (ch == '*') { |
| 627 bAll = TRUE; | 627 bAll = true; |
| 628 break; | 628 break; |
| 629 } else { | 629 } else { |
| 630 break; | 630 break; |
| 631 } | 631 } |
| 632 } | 632 } |
| 633 if (bAll) { | 633 if (bAll) { |
| 634 if (rnd.m_dwStyles & XFA_RESOLVENODE_CreateNode) { | 634 if (rnd.m_dwStyles & XFA_RESOLVENODE_CreateNode) { |
| 635 if (rnd.m_dwStyles & XFA_RESOLVENODE_Bind) { | 635 if (rnd.m_dwStyles & XFA_RESOLVENODE_Bind) { |
| 636 m_pNodeHelper->m_pCreateParent = ToNode(rnd.m_CurNode); | 636 m_pNodeHelper->m_pCreateParent = ToNode(rnd.m_CurNode); |
| 637 m_pNodeHelper->m_iCreateCount = 1; | 637 m_pNodeHelper->m_iCreateCount = 1; |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 687 wsCondition.Right(1) == FX_WSTRC(L")")) { | 687 wsCondition.Right(1) == FX_WSTRC(L")")) { |
| 688 eLangType = XFA_SCRIPTLANGTYPE_Javascript; | 688 eLangType = XFA_SCRIPTLANGTYPE_Javascript; |
| 689 } else { | 689 } else { |
| 690 return; | 690 return; |
| 691 } | 691 } |
| 692 | 692 |
| 693 CXFA_ScriptContext* pContext = rnd.m_pSC; | 693 CXFA_ScriptContext* pContext = rnd.m_pSC; |
| 694 wsExpression = wsCondition.Mid(2, wsCondition.GetLength() - 3); | 694 wsExpression = wsCondition.Mid(2, wsCondition.GetLength() - 3); |
| 695 for (int32_t i = iFoundCount - 1; i >= 0; i--) { | 695 for (int32_t i = iFoundCount - 1; i >= 0; i--) { |
| 696 CXFA_Object* node = findNodes[i]; | 696 CXFA_Object* node = findNodes[i]; |
| 697 FX_BOOL bRet = FALSE; | 697 bool bRet = false; |
| 698 std::unique_ptr<CFXJSE_Value> pRetValue( | 698 std::unique_ptr<CFXJSE_Value> pRetValue( |
| 699 new CFXJSE_Value(rnd.m_pSC->GetRuntime())); | 699 new CFXJSE_Value(rnd.m_pSC->GetRuntime())); |
| 700 bRet = pContext->RunScript(eLangType, wsExpression.AsStringC(), | 700 bRet = pContext->RunScript(eLangType, wsExpression.AsStringC(), |
| 701 pRetValue.get(), node); | 701 pRetValue.get(), node); |
| 702 if (!bRet || !pRetValue->ToBoolean()) | 702 if (!bRet || !pRetValue->ToBoolean()) |
| 703 findNodes.RemoveAt(i); | 703 findNodes.RemoveAt(i); |
| 704 } | 704 } |
| 705 } | 705 } |
| 706 | 706 |
| 707 void CXFA_ResolveProcessor::FilterCondition(CXFA_ResolveNodesData& rnd, | 707 void CXFA_ResolveProcessor::FilterCondition(CXFA_ResolveNodesData& rnd, |
| 708 CFX_WideString wsCondition) { | 708 CFX_WideString wsCondition) { |
| 709 CXFA_NodeArray& findNodes = (CXFA_NodeArray&)rnd.m_Nodes; | 709 CXFA_NodeArray& findNodes = (CXFA_NodeArray&)rnd.m_Nodes; |
| 710 int32_t iCurrIndex = 0; | 710 int32_t iCurrIndex = 0; |
| 711 const CXFA_NodeArray& array = rnd.m_pSC->GetUpObjectArray(); | 711 const CXFA_NodeArray& array = rnd.m_pSC->GetUpObjectArray(); |
| 712 int32_t iSize = array.GetSize(); | 712 int32_t iSize = array.GetSize(); |
| 713 if (iSize) { | 713 if (iSize) { |
| 714 CXFA_Node* curNode = array[iSize - 1]; | 714 CXFA_Node* curNode = array[iSize - 1]; |
| 715 FX_BOOL bIsProperty = m_pNodeHelper->NodeIsProperty(curNode); | 715 bool bIsProperty = m_pNodeHelper->NodeIsProperty(curNode); |
| 716 if (curNode->IsUnnamed() || | 716 if (curNode->IsUnnamed() || |
| 717 (bIsProperty && curNode->GetElementType() != XFA_Element::PageSet)) { | 717 (bIsProperty && curNode->GetElementType() != XFA_Element::PageSet)) { |
| 718 iCurrIndex = m_pNodeHelper->GetIndex(curNode, XFA_LOGIC_Transparent, | 718 iCurrIndex = m_pNodeHelper->GetIndex(curNode, XFA_LOGIC_Transparent, |
| 719 bIsProperty, TRUE); | 719 bIsProperty, true); |
| 720 } else { | 720 } else { |
| 721 iCurrIndex = m_pNodeHelper->GetIndex(curNode, XFA_LOGIC_Transparent, | 721 iCurrIndex = m_pNodeHelper->GetIndex(curNode, XFA_LOGIC_Transparent, |
| 722 bIsProperty, FALSE); | 722 bIsProperty, false); |
| 723 } | 723 } |
| 724 } | 724 } |
| 725 int32_t iFoundCount = findNodes.GetSize(); | 725 int32_t iFoundCount = findNodes.GetSize(); |
| 726 wsCondition.TrimLeft(); | 726 wsCondition.TrimLeft(); |
| 727 wsCondition.TrimRight(); | 727 wsCondition.TrimRight(); |
| 728 int32_t iLen = wsCondition.GetLength(); | 728 int32_t iLen = wsCondition.GetLength(); |
| 729 if (!iLen) { | 729 if (!iLen) { |
| 730 if (rnd.m_dwStyles & XFA_RESOLVENODE_ALL) { | 730 if (rnd.m_dwStyles & XFA_RESOLVENODE_ALL) { |
| 731 return; | 731 return; |
| 732 } | 732 } |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 814 m_wsCondition(), | 814 m_wsCondition(), |
| 815 m_nLevel(0), | 815 m_nLevel(0), |
| 816 m_Nodes(), | 816 m_Nodes(), |
| 817 m_dwStyles(XFA_RESOLVENODE_Children), | 817 m_dwStyles(XFA_RESOLVENODE_Children), |
| 818 m_pScriptAttribute(nullptr), | 818 m_pScriptAttribute(nullptr), |
| 819 m_dwFlag(XFA_RESOVENODE_RSTYPE_Nodes) {} | 819 m_dwFlag(XFA_RESOVENODE_RSTYPE_Nodes) {} |
| 820 | 820 |
| 821 CXFA_ResolveNodesData::~CXFA_ResolveNodesData() { | 821 CXFA_ResolveNodesData::~CXFA_ResolveNodesData() { |
| 822 m_Nodes.RemoveAll(); | 822 m_Nodes.RemoveAll(); |
| 823 } | 823 } |
| OLD | NEW |