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_layout_itemlayout.h" | 7 #include "xfa/fxfa/parser/xfa_layout_itemlayout.h" |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <memory> | 10 #include <memory> |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 } | 147 } |
148 } | 148 } |
149 FX_FLOAT fRelSplitPos = fProposedSplitPos - fCurBottomMargin; | 149 FX_FLOAT fRelSplitPos = fProposedSplitPos - fCurBottomMargin; |
150 for (CXFA_ContentLayoutItem* pChildItem = | 150 for (CXFA_ContentLayoutItem* pChildItem = |
151 (CXFA_ContentLayoutItem*)pLayoutItem->m_pFirstChild; | 151 (CXFA_ContentLayoutItem*)pLayoutItem->m_pFirstChild; |
152 pChildItem; | 152 pChildItem; |
153 pChildItem = | 153 pChildItem = |
154 (CXFA_ContentLayoutItem*)pChildItem->m_pNextSibling) { | 154 (CXFA_ContentLayoutItem*)pChildItem->m_pNextSibling) { |
155 FX_FLOAT fChildOffset = | 155 FX_FLOAT fChildOffset = |
156 fCurVerticalOffset + fCurTopMargin + pChildItem->m_sPos.y; | 156 fCurVerticalOffset + fCurTopMargin + pChildItem->m_sPos.y; |
157 FX_BOOL bAppChange = FALSE; | 157 FX_BOOL bChange = FALSE; |
158 if (FindLayoutItemSplitPos(pChildItem, fChildOffset, fRelSplitPos, | 158 if (FindLayoutItemSplitPos(pChildItem, fChildOffset, fRelSplitPos, |
159 bAppChange, bCalculateMargin)) { | 159 bChange, bCalculateMargin)) { |
160 if (fRelSplitPos - fChildOffset < XFA_LAYOUT_FLOAT_PERCISION && | 160 if (fRelSplitPos - fChildOffset < XFA_LAYOUT_FLOAT_PERCISION && |
161 bAppChange) { | 161 bChange) { |
162 fProposedSplitPos = fRelSplitPos - fCurTopMargin; | 162 fProposedSplitPos = fRelSplitPos - fCurTopMargin; |
163 } else { | 163 } else { |
164 fProposedSplitPos = fRelSplitPos + fCurBottomMargin; | 164 fProposedSplitPos = fRelSplitPos + fCurBottomMargin; |
165 } | 165 } |
166 bAnyChanged = TRUE; | 166 bAnyChanged = TRUE; |
167 bChanged = TRUE; | 167 bChanged = TRUE; |
168 if (fProposedSplitPos <= | 168 if (fProposedSplitPos <= |
169 fCurVerticalOffset + XFA_LAYOUT_FLOAT_PERCISION) { | 169 fCurVerticalOffset + XFA_LAYOUT_FLOAT_PERCISION) { |
170 return TRUE; | 170 return TRUE; |
171 } | 171 } |
(...skipping 1743 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1915 } | 1915 } |
1916 if (pTrailerNode && pFormNode) { | 1916 if (pTrailerNode && pFormNode) { |
1917 pFormNode->RemoveChild(pTrailerNode); | 1917 pFormNode->RemoveChild(pTrailerNode); |
1918 } | 1918 } |
1919 if (pTrailerItem) { | 1919 if (pTrailerItem) { |
1920 XFA_ReleaseLayoutItem(pTrailerItem); | 1920 XFA_ReleaseLayoutItem(pTrailerItem); |
1921 } | 1921 } |
1922 } | 1922 } |
1923 static XFA_ItemLayoutProcessorResult XFA_ItemLayoutProcessor_InsertFlowedItem( | 1923 static XFA_ItemLayoutProcessorResult XFA_ItemLayoutProcessor_InsertFlowedItem( |
1924 CXFA_ItemLayoutProcessor* pThis, | 1924 CXFA_ItemLayoutProcessor* pThis, |
1925 CXFA_ItemLayoutProcessor*& pProcessor, | 1925 CXFA_ItemLayoutProcessor* pProcessor, |
1926 FX_BOOL bContainerWidthAutoSize, | 1926 FX_BOOL bContainerWidthAutoSize, |
1927 FX_BOOL bContainerHeightAutoSize, | 1927 FX_BOOL bContainerHeightAutoSize, |
1928 FX_FLOAT fContainerHeight, | 1928 FX_FLOAT fContainerHeight, |
1929 XFA_ATTRIBUTEENUM eFlowStrategy, | 1929 XFA_ATTRIBUTEENUM eFlowStrategy, |
1930 uint8_t& uCurHAlignState, | 1930 uint8_t& uCurHAlignState, |
1931 CFX_ArrayTemplate<CXFA_ContentLayoutItem*>(&rgCurLineLayoutItems)[3], | 1931 CFX_ArrayTemplate<CXFA_ContentLayoutItem*> (&rgCurLineLayoutItems)[3], |
1932 FX_BOOL bUseBreakControl, | 1932 FX_BOOL bUseBreakControl, |
1933 FX_FLOAT fAvailHeight, | 1933 FX_FLOAT fAvailHeight, |
1934 FX_FLOAT fRealHeight, | 1934 FX_FLOAT fRealHeight, |
1935 FX_FLOAT& fContentCurRowY, | 1935 FX_FLOAT& fContentCurRowY, |
1936 FX_FLOAT& fContentWidthLimit, | 1936 FX_FLOAT& fContentWidthLimit, |
1937 FX_FLOAT& fContentCurRowAvailWidth, | 1937 FX_FLOAT& fContentCurRowAvailWidth, |
1938 FX_FLOAT& fContentCurRowHeight, | 1938 FX_FLOAT& fContentCurRowHeight, |
1939 FX_BOOL& bAddedItemInRow, | 1939 FX_BOOL& bAddedItemInRow, |
1940 FX_BOOL& bForceEndPage, | 1940 FX_BOOL& bForceEndPage, |
1941 CXFA_LayoutContext* pLayoutContext = NULL, | 1941 CXFA_LayoutContext* pLayoutContext = NULL, |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2259 } | 2259 } |
2260 } | 2260 } |
2261 return XFA_ItemLayoutProcessorResult_PageFullBreak; | 2261 return XFA_ItemLayoutProcessorResult_PageFullBreak; |
2262 } | 2262 } |
2263 } | 2263 } |
2264 } else { | 2264 } else { |
2265 return XFA_ItemLayoutProcessorResult_RowFullBreak; | 2265 return XFA_ItemLayoutProcessorResult_RowFullBreak; |
2266 } | 2266 } |
2267 return XFA_ItemLayoutProcessorResult_Done; | 2267 return XFA_ItemLayoutProcessorResult_Done; |
2268 } | 2268 } |
| 2269 |
2269 XFA_ItemLayoutProcessorResult CXFA_ItemLayoutProcessor::DoLayoutFlowedContainer( | 2270 XFA_ItemLayoutProcessorResult CXFA_ItemLayoutProcessor::DoLayoutFlowedContainer( |
2270 FX_BOOL bUseBreakControl, | 2271 FX_BOOL bUseBreakControl, |
2271 XFA_ATTRIBUTEENUM eFlowStrategy, | 2272 XFA_ATTRIBUTEENUM eFlowStrategy, |
2272 FX_FLOAT fHeightLimit, | 2273 FX_FLOAT fHeightLimit, |
2273 FX_FLOAT fRealHeight, | 2274 FX_FLOAT fRealHeight, |
2274 CXFA_LayoutContext* pContext, | 2275 CXFA_LayoutContext* pContext, |
2275 FX_BOOL bRootForceTb) { | 2276 FX_BOOL bRootForceTb) { |
2276 m_bHasAvailHeight = TRUE; | 2277 m_bHasAvailHeight = TRUE; |
2277 FX_FLOAT fContainerWidth = 0, fContainerHeight = 0; | 2278 FX_FLOAT fContainerWidth = 0, fContainerHeight = 0; |
2278 FX_BOOL bBreakDone = FALSE; | 2279 FX_BOOL bBreakDone = FALSE; |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2438 while (pLayoutNextTemp) { | 2439 while (pLayoutNextTemp) { |
2439 pLayoutNextTemp->m_pParent = NULL; | 2440 pLayoutNextTemp->m_pParent = NULL; |
2440 CXFA_ContentLayoutItem* pSaveLayoutNext = | 2441 CXFA_ContentLayoutItem* pSaveLayoutNext = |
2441 (CXFA_ContentLayoutItem*)pLayoutNextTemp->m_pNextSibling; | 2442 (CXFA_ContentLayoutItem*)pLayoutNextTemp->m_pNextSibling; |
2442 pLayoutNextTemp->m_pNextSibling = NULL; | 2443 pLayoutNextTemp->m_pNextSibling = NULL; |
2443 pLayoutNextTemp = pSaveLayoutNext; | 2444 pLayoutNextTemp = pSaveLayoutNext; |
2444 } | 2445 } |
2445 pLayoutChild = NULL; | 2446 pLayoutChild = NULL; |
2446 } | 2447 } |
2447 while (m_pCurChildNode) { | 2448 while (m_pCurChildNode) { |
2448 CXFA_ItemLayoutProcessor* pProcessor = NULL; | 2449 CXFA_ItemLayoutProcessor* pProcessor = nullptr; |
2449 FX_BOOL bAddedItemInRow = FALSE; | 2450 FX_BOOL bAddedItemInRow = FALSE; |
2450 fContentCurRowY += | 2451 fContentCurRowY += |
2451 XFA_ItemLayoutProcessor_InsertPendingItems(this, m_pFormNode); | 2452 XFA_ItemLayoutProcessor_InsertPendingItems(this, m_pFormNode); |
2452 switch (m_nCurChildNodeStage) { | 2453 switch (m_nCurChildNodeStage) { |
2453 case XFA_ItemLayoutProcessorStages_Keep: | 2454 case XFA_ItemLayoutProcessorStages_Keep: |
2454 case XFA_ItemLayoutProcessorStages_None: | 2455 case XFA_ItemLayoutProcessorStages_None: |
2455 break; | 2456 break; |
2456 case XFA_ItemLayoutProcessorStages_BreakBefore: { | 2457 case XFA_ItemLayoutProcessorStages_BreakBefore: { |
2457 for (int32_t iIndex = 0; iIndex < m_arrayKeepItems.GetSize(); | 2458 for (int32_t iIndex = 0; iIndex < m_arrayKeepItems.GetSize(); |
2458 iIndex++) { | 2459 iIndex++) { |
(...skipping 11 matching lines...) Expand all Loading... |
2470 if (JudgeLeaderOrTrailerForOccur(pLeaderNode)) { | 2471 if (JudgeLeaderOrTrailerForOccur(pLeaderNode)) { |
2471 XFA_ItemLayoutProcessor_AddPendingNode(this, pLeaderNode, TRUE); | 2472 XFA_ItemLayoutProcessor_AddPendingNode(this, pLeaderNode, TRUE); |
2472 } | 2473 } |
2473 if (JudgeLeaderOrTrailerForOccur(pTrailerNode)) { | 2474 if (JudgeLeaderOrTrailerForOccur(pTrailerNode)) { |
2474 if (m_pFormNode->GetNodeItem(XFA_NODEITEM_Parent)->GetClassID() == | 2475 if (m_pFormNode->GetNodeItem(XFA_NODEITEM_Parent)->GetClassID() == |
2475 XFA_ELEMENT_Form && | 2476 XFA_ELEMENT_Form && |
2476 m_pLayoutItem == NULL) { | 2477 m_pLayoutItem == NULL) { |
2477 XFA_ItemLayoutProcessor_AddPendingNode(this, pTrailerNode, | 2478 XFA_ItemLayoutProcessor_AddPendingNode(this, pTrailerNode, |
2478 TRUE); | 2479 TRUE); |
2479 } else { | 2480 } else { |
2480 CXFA_ItemLayoutProcessor* pProcessor = | 2481 std::unique_ptr<CXFA_ItemLayoutProcessor> pTempProcessor( |
2481 new CXFA_ItemLayoutProcessor(pTrailerNode, NULL); | 2482 new CXFA_ItemLayoutProcessor(pTrailerNode, nullptr)); |
2482 XFA_ItemLayoutProcessor_InsertFlowedItem( | 2483 XFA_ItemLayoutProcessor_InsertFlowedItem( |
2483 this, pProcessor, bContainerWidthAutoSize, | 2484 this, pTempProcessor.get(), bContainerWidthAutoSize, |
2484 bContainerHeightAutoSize, fContainerHeight, eFlowStrategy, | 2485 bContainerHeightAutoSize, fContainerHeight, eFlowStrategy, |
2485 uCurHAlignState, rgCurLineLayoutItems, FALSE, | 2486 uCurHAlignState, rgCurLineLayoutItems, FALSE, |
2486 XFA_LAYOUT_FLOAT_MAX, XFA_LAYOUT_FLOAT_MAX, fContentCurRowY, | 2487 XFA_LAYOUT_FLOAT_MAX, XFA_LAYOUT_FLOAT_MAX, fContentCurRowY, |
2487 fContentWidthLimit, fContentCurRowAvailWidth, | 2488 fContentWidthLimit, fContentCurRowAvailWidth, |
2488 fContentCurRowHeight, bAddedItemInRow, bForceEndPage, | 2489 fContentCurRowHeight, bAddedItemInRow, bForceEndPage, |
2489 pContext); | 2490 pContext); |
2490 delete pProcessor; | |
2491 pProcessor = NULL; | |
2492 } | 2491 } |
2493 } | 2492 } |
2494 XFA_ItemLayoutProcessor_GotoNextContainerNode( | 2493 XFA_ItemLayoutProcessor_GotoNextContainerNode( |
2495 m_pCurChildNode, m_nCurChildNodeStage, m_pFormNode, TRUE); | 2494 m_pCurChildNode, m_nCurChildNodeStage, m_pFormNode, TRUE); |
2496 bForceEndPage = TRUE; | 2495 bForceEndPage = TRUE; |
2497 bIsManualBreak = TRUE; | 2496 bIsManualBreak = TRUE; |
2498 goto SuspendAndCreateNewRow; | 2497 goto SuspendAndCreateNewRow; |
2499 } | 2498 } |
2500 } break; | 2499 } break; |
2501 case XFA_ItemLayoutProcessorStages_BreakAfter: { | 2500 case XFA_ItemLayoutProcessorStages_BreakAfter: { |
2502 CXFA_Node *pLeaderNode = NULL, *pTrailerNode = NULL; | 2501 CXFA_Node *pLeaderNode = NULL, *pTrailerNode = NULL; |
2503 FX_BOOL bCreatePage = FALSE; | 2502 FX_BOOL bCreatePage = FALSE; |
2504 if (bUseBreakControl && m_pPageMgr && | 2503 if (bUseBreakControl && m_pPageMgr && |
2505 m_pPageMgr->ProcessBreakBeforeOrAfter(m_pCurChildNode, FALSE, | 2504 m_pPageMgr->ProcessBreakBeforeOrAfter(m_pCurChildNode, FALSE, |
2506 pLeaderNode, pTrailerNode, | 2505 pLeaderNode, pTrailerNode, |
2507 bCreatePage) && | 2506 bCreatePage) && |
2508 m_pFormNode->GetClassID() != XFA_ELEMENT_Form) { | 2507 m_pFormNode->GetClassID() != XFA_ELEMENT_Form) { |
2509 if (JudgeLeaderOrTrailerForOccur(pTrailerNode)) { | 2508 if (JudgeLeaderOrTrailerForOccur(pTrailerNode)) { |
2510 CXFA_ItemLayoutProcessor* pProcessor = | 2509 std::unique_ptr<CXFA_ItemLayoutProcessor> pTempProcessor( |
2511 new CXFA_ItemLayoutProcessor(pTrailerNode, NULL); | 2510 new CXFA_ItemLayoutProcessor(pTrailerNode, nullptr)); |
2512 XFA_ItemLayoutProcessor_InsertFlowedItem( | 2511 XFA_ItemLayoutProcessor_InsertFlowedItem( |
2513 this, pProcessor, bContainerWidthAutoSize, | 2512 this, pTempProcessor.get(), bContainerWidthAutoSize, |
2514 bContainerHeightAutoSize, fContainerHeight, eFlowStrategy, | 2513 bContainerHeightAutoSize, fContainerHeight, eFlowStrategy, |
2515 uCurHAlignState, rgCurLineLayoutItems, FALSE, | 2514 uCurHAlignState, rgCurLineLayoutItems, FALSE, |
2516 XFA_LAYOUT_FLOAT_MAX, XFA_LAYOUT_FLOAT_MAX, fContentCurRowY, | 2515 XFA_LAYOUT_FLOAT_MAX, XFA_LAYOUT_FLOAT_MAX, fContentCurRowY, |
2517 fContentWidthLimit, fContentCurRowAvailWidth, | 2516 fContentWidthLimit, fContentCurRowAvailWidth, |
2518 fContentCurRowHeight, bAddedItemInRow, bForceEndPage, | 2517 fContentCurRowHeight, bAddedItemInRow, bForceEndPage, |
2519 pContext); | 2518 pContext); |
2520 delete pProcessor; | |
2521 pProcessor = NULL; | |
2522 } | 2519 } |
2523 if (!bCreatePage) { | 2520 if (!bCreatePage) { |
2524 if (JudgeLeaderOrTrailerForOccur(pLeaderNode)) { | 2521 if (JudgeLeaderOrTrailerForOccur(pLeaderNode)) { |
2525 CalculateRowChildPosition( | 2522 CalculateRowChildPosition( |
2526 rgCurLineLayoutItems, eFlowStrategy, | 2523 rgCurLineLayoutItems, eFlowStrategy, |
2527 bContainerHeightAutoSize, bContainerWidthAutoSize, | 2524 bContainerHeightAutoSize, bContainerWidthAutoSize, |
2528 fContentCalculatedWidth, fContentCalculatedHeight, | 2525 fContentCalculatedWidth, fContentCalculatedHeight, |
2529 fContentCurRowY, fContentCurRowHeight, fContentWidthLimit); | 2526 fContentCurRowY, fContentCurRowHeight, fContentWidthLimit); |
2530 rgCurLineLayoutItems->RemoveAll(); | 2527 rgCurLineLayoutItems->RemoveAll(); |
2531 CXFA_ItemLayoutProcessor* pProcessor = | 2528 std::unique_ptr<CXFA_ItemLayoutProcessor> pTempProcessor( |
2532 new CXFA_ItemLayoutProcessor(pLeaderNode, NULL); | 2529 new CXFA_ItemLayoutProcessor(pLeaderNode, nullptr)); |
2533 XFA_ItemLayoutProcessor_InsertFlowedItem( | 2530 XFA_ItemLayoutProcessor_InsertFlowedItem( |
2534 this, pProcessor, bContainerWidthAutoSize, | 2531 this, pTempProcessor.get(), bContainerWidthAutoSize, |
2535 bContainerHeightAutoSize, fContainerHeight, eFlowStrategy, | 2532 bContainerHeightAutoSize, fContainerHeight, eFlowStrategy, |
2536 uCurHAlignState, rgCurLineLayoutItems, FALSE, | 2533 uCurHAlignState, rgCurLineLayoutItems, FALSE, |
2537 XFA_LAYOUT_FLOAT_MAX, XFA_LAYOUT_FLOAT_MAX, fContentCurRowY, | 2534 XFA_LAYOUT_FLOAT_MAX, XFA_LAYOUT_FLOAT_MAX, fContentCurRowY, |
2538 fContentWidthLimit, fContentCurRowAvailWidth, | 2535 fContentWidthLimit, fContentCurRowAvailWidth, |
2539 fContentCurRowHeight, bAddedItemInRow, bForceEndPage, | 2536 fContentCurRowHeight, bAddedItemInRow, bForceEndPage, |
2540 pContext); | 2537 pContext); |
2541 delete pProcessor; | |
2542 pProcessor = NULL; | |
2543 } | 2538 } |
2544 } else { | 2539 } else { |
2545 if (JudgeLeaderOrTrailerForOccur(pLeaderNode)) { | 2540 if (JudgeLeaderOrTrailerForOccur(pLeaderNode)) { |
2546 XFA_ItemLayoutProcessor_AddPendingNode(this, pLeaderNode, TRUE); | 2541 XFA_ItemLayoutProcessor_AddPendingNode(this, pLeaderNode, TRUE); |
2547 } | 2542 } |
2548 } | 2543 } |
2549 XFA_ItemLayoutProcessor_GotoNextContainerNode( | 2544 XFA_ItemLayoutProcessor_GotoNextContainerNode( |
2550 m_pCurChildNode, m_nCurChildNodeStage, m_pFormNode, TRUE); | 2545 m_pCurChildNode, m_nCurChildNodeStage, m_pFormNode, TRUE); |
2551 if (bCreatePage) { | 2546 if (bCreatePage) { |
2552 bForceEndPage = TRUE; | 2547 bForceEndPage = TRUE; |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2708 m_fUsedSize = 0; | 2703 m_fUsedSize = 0; |
2709 } else { | 2704 } else { |
2710 m_fUsedSize += m_pLayoutItem->m_sSize.y; | 2705 m_fUsedSize += m_pLayoutItem->m_sSize.y; |
2711 } | 2706 } |
2712 } | 2707 } |
2713 return bRetValue | 2708 return bRetValue |
2714 ? XFA_ItemLayoutProcessorResult_Done | 2709 ? XFA_ItemLayoutProcessorResult_Done |
2715 : (bIsManualBreak ? XFA_ItemLayoutProcessorResult_ManualBreak | 2710 : (bIsManualBreak ? XFA_ItemLayoutProcessorResult_ManualBreak |
2716 : XFA_ItemLayoutProcessorResult_PageFullBreak); | 2711 : XFA_ItemLayoutProcessorResult_PageFullBreak); |
2717 } | 2712 } |
| 2713 |
2718 FX_BOOL CXFA_ItemLayoutProcessor::CalculateRowChildPosition( | 2714 FX_BOOL CXFA_ItemLayoutProcessor::CalculateRowChildPosition( |
2719 CFX_ArrayTemplate<CXFA_ContentLayoutItem*>(&rgCurLineLayoutItems)[3], | 2715 CFX_ArrayTemplate<CXFA_ContentLayoutItem*>(&rgCurLineLayoutItems)[3], |
2720 XFA_ATTRIBUTEENUM eFlowStrategy, | 2716 XFA_ATTRIBUTEENUM eFlowStrategy, |
2721 FX_BOOL bContainerHeightAutoSize, | 2717 FX_BOOL bContainerHeightAutoSize, |
2722 FX_BOOL bContainerWidthAutoSize, | 2718 FX_BOOL bContainerWidthAutoSize, |
2723 FX_FLOAT& fContentCalculatedWidth, | 2719 FX_FLOAT& fContentCalculatedWidth, |
2724 FX_FLOAT& fContentCalculatedHeight, | 2720 FX_FLOAT& fContentCalculatedHeight, |
2725 FX_FLOAT& fContentCurRowY, | 2721 FX_FLOAT& fContentCurRowY, |
2726 FX_FLOAT fContentCurRowHeight, | 2722 FX_FLOAT fContentCurRowHeight, |
2727 FX_FLOAT fContentWidthLimit, | 2723 FX_FLOAT fContentWidthLimit, |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2988 if (iMax < 0) | 2984 if (iMax < 0) |
2989 return TRUE; | 2985 return TRUE; |
2990 | 2986 |
2991 int32_t iCount = m_PendingNodesCount[pTemplate]; | 2987 int32_t iCount = m_PendingNodesCount[pTemplate]; |
2992 if (iCount >= iMax) | 2988 if (iCount >= iMax) |
2993 return FALSE; | 2989 return FALSE; |
2994 | 2990 |
2995 m_PendingNodesCount[pTemplate] = iCount + 1; | 2991 m_PendingNodesCount[pTemplate] = iCount + 1; |
2996 return TRUE; | 2992 return TRUE; |
2997 } | 2993 } |
OLD | NEW |