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

Side by Side Diff: xfa/fxfa/parser/cxfa_resolveprocessor.cpp

Issue 2467203003: Remove FX_BOOL from xfa. (Closed)
Patch Set: Created 4 years, 1 month 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
« no previous file with comments | « xfa/fxfa/parser/cxfa_occur.cpp ('k') | xfa/fxfa/parser/cxfa_script.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/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
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
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
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
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « xfa/fxfa/parser/cxfa_occur.cpp ('k') | xfa/fxfa/parser/cxfa_script.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698