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

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

Issue 2027273002: Fix all the code which has duplicate variable declarations (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: rebase Created 4 years, 6 months 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/xfa_document_serialize.cpp ('k') | xfa/fxfa/parser/xfa_layout_pagemgr_new.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/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
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
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
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « xfa/fxfa/parser/xfa_document_serialize.cpp ('k') | xfa/fxfa/parser/xfa_layout_pagemgr_new.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698