| Index: xfa/fxfa/parser/xfa_layout_itemlayout.cpp
|
| diff --git a/xfa/fxfa/parser/xfa_layout_itemlayout.cpp b/xfa/fxfa/parser/xfa_layout_itemlayout.cpp
|
| index 7b7ecf4ba726a84f060e8791265f4d33e80e6e26..509bf630e94fb0498bc5d5a1fdfb65a509278189 100644
|
| --- a/xfa/fxfa/parser/xfa_layout_itemlayout.cpp
|
| +++ b/xfa/fxfa/parser/xfa_layout_itemlayout.cpp
|
| @@ -154,11 +154,11 @@ FX_BOOL CXFA_ItemLayoutProcessor::FindLayoutItemSplitPos(
|
| (CXFA_ContentLayoutItem*)pChildItem->m_pNextSibling) {
|
| FX_FLOAT fChildOffset =
|
| fCurVerticalOffset + fCurTopMargin + pChildItem->m_sPos.y;
|
| - FX_BOOL bAppChange = FALSE;
|
| + FX_BOOL bChange = FALSE;
|
| if (FindLayoutItemSplitPos(pChildItem, fChildOffset, fRelSplitPos,
|
| - bAppChange, bCalculateMargin)) {
|
| + bChange, bCalculateMargin)) {
|
| if (fRelSplitPos - fChildOffset < XFA_LAYOUT_FLOAT_PERCISION &&
|
| - bAppChange) {
|
| + bChange) {
|
| fProposedSplitPos = fRelSplitPos - fCurTopMargin;
|
| } else {
|
| fProposedSplitPos = fRelSplitPos + fCurBottomMargin;
|
| @@ -1922,13 +1922,13 @@ void CXFA_ItemLayoutProcessor::ProcessUnUseOverFlow(
|
| }
|
| static XFA_ItemLayoutProcessorResult XFA_ItemLayoutProcessor_InsertFlowedItem(
|
| CXFA_ItemLayoutProcessor* pThis,
|
| - CXFA_ItemLayoutProcessor*& pProcessor,
|
| + CXFA_ItemLayoutProcessor* pProcessor,
|
| FX_BOOL bContainerWidthAutoSize,
|
| FX_BOOL bContainerHeightAutoSize,
|
| FX_FLOAT fContainerHeight,
|
| XFA_ATTRIBUTEENUM eFlowStrategy,
|
| uint8_t& uCurHAlignState,
|
| - CFX_ArrayTemplate<CXFA_ContentLayoutItem*>(&rgCurLineLayoutItems)[3],
|
| + CFX_ArrayTemplate<CXFA_ContentLayoutItem*> (&rgCurLineLayoutItems)[3],
|
| FX_BOOL bUseBreakControl,
|
| FX_FLOAT fAvailHeight,
|
| FX_FLOAT fRealHeight,
|
| @@ -2266,6 +2266,7 @@ static XFA_ItemLayoutProcessorResult XFA_ItemLayoutProcessor_InsertFlowedItem(
|
| }
|
| return XFA_ItemLayoutProcessorResult_Done;
|
| }
|
| +
|
| XFA_ItemLayoutProcessorResult CXFA_ItemLayoutProcessor::DoLayoutFlowedContainer(
|
| FX_BOOL bUseBreakControl,
|
| XFA_ATTRIBUTEENUM eFlowStrategy,
|
| @@ -2445,7 +2446,7 @@ XFA_ItemLayoutProcessorResult CXFA_ItemLayoutProcessor::DoLayoutFlowedContainer(
|
| pLayoutChild = NULL;
|
| }
|
| while (m_pCurChildNode) {
|
| - CXFA_ItemLayoutProcessor* pProcessor = NULL;
|
| + CXFA_ItemLayoutProcessor* pProcessor = nullptr;
|
| FX_BOOL bAddedItemInRow = FALSE;
|
| fContentCurRowY +=
|
| XFA_ItemLayoutProcessor_InsertPendingItems(this, m_pFormNode);
|
| @@ -2477,18 +2478,16 @@ XFA_ItemLayoutProcessorResult CXFA_ItemLayoutProcessor::DoLayoutFlowedContainer(
|
| XFA_ItemLayoutProcessor_AddPendingNode(this, pTrailerNode,
|
| TRUE);
|
| } else {
|
| - CXFA_ItemLayoutProcessor* pProcessor =
|
| - new CXFA_ItemLayoutProcessor(pTrailerNode, NULL);
|
| + std::unique_ptr<CXFA_ItemLayoutProcessor> pTempProcessor(
|
| + new CXFA_ItemLayoutProcessor(pTrailerNode, nullptr));
|
| XFA_ItemLayoutProcessor_InsertFlowedItem(
|
| - this, pProcessor, bContainerWidthAutoSize,
|
| + this, pTempProcessor.get(), bContainerWidthAutoSize,
|
| bContainerHeightAutoSize, fContainerHeight, eFlowStrategy,
|
| uCurHAlignState, rgCurLineLayoutItems, FALSE,
|
| XFA_LAYOUT_FLOAT_MAX, XFA_LAYOUT_FLOAT_MAX, fContentCurRowY,
|
| fContentWidthLimit, fContentCurRowAvailWidth,
|
| fContentCurRowHeight, bAddedItemInRow, bForceEndPage,
|
| pContext);
|
| - delete pProcessor;
|
| - pProcessor = NULL;
|
| }
|
| }
|
| XFA_ItemLayoutProcessor_GotoNextContainerNode(
|
| @@ -2507,18 +2506,16 @@ XFA_ItemLayoutProcessorResult CXFA_ItemLayoutProcessor::DoLayoutFlowedContainer(
|
| bCreatePage) &&
|
| m_pFormNode->GetClassID() != XFA_ELEMENT_Form) {
|
| if (JudgeLeaderOrTrailerForOccur(pTrailerNode)) {
|
| - CXFA_ItemLayoutProcessor* pProcessor =
|
| - new CXFA_ItemLayoutProcessor(pTrailerNode, NULL);
|
| + std::unique_ptr<CXFA_ItemLayoutProcessor> pTempProcessor(
|
| + new CXFA_ItemLayoutProcessor(pTrailerNode, nullptr));
|
| XFA_ItemLayoutProcessor_InsertFlowedItem(
|
| - this, pProcessor, bContainerWidthAutoSize,
|
| + this, pTempProcessor.get(), bContainerWidthAutoSize,
|
| bContainerHeightAutoSize, fContainerHeight, eFlowStrategy,
|
| uCurHAlignState, rgCurLineLayoutItems, FALSE,
|
| XFA_LAYOUT_FLOAT_MAX, XFA_LAYOUT_FLOAT_MAX, fContentCurRowY,
|
| fContentWidthLimit, fContentCurRowAvailWidth,
|
| fContentCurRowHeight, bAddedItemInRow, bForceEndPage,
|
| pContext);
|
| - delete pProcessor;
|
| - pProcessor = NULL;
|
| }
|
| if (!bCreatePage) {
|
| if (JudgeLeaderOrTrailerForOccur(pLeaderNode)) {
|
| @@ -2528,18 +2525,16 @@ XFA_ItemLayoutProcessorResult CXFA_ItemLayoutProcessor::DoLayoutFlowedContainer(
|
| fContentCalculatedWidth, fContentCalculatedHeight,
|
| fContentCurRowY, fContentCurRowHeight, fContentWidthLimit);
|
| rgCurLineLayoutItems->RemoveAll();
|
| - CXFA_ItemLayoutProcessor* pProcessor =
|
| - new CXFA_ItemLayoutProcessor(pLeaderNode, NULL);
|
| + std::unique_ptr<CXFA_ItemLayoutProcessor> pTempProcessor(
|
| + new CXFA_ItemLayoutProcessor(pLeaderNode, nullptr));
|
| XFA_ItemLayoutProcessor_InsertFlowedItem(
|
| - this, pProcessor, bContainerWidthAutoSize,
|
| + this, pTempProcessor.get(), bContainerWidthAutoSize,
|
| bContainerHeightAutoSize, fContainerHeight, eFlowStrategy,
|
| uCurHAlignState, rgCurLineLayoutItems, FALSE,
|
| XFA_LAYOUT_FLOAT_MAX, XFA_LAYOUT_FLOAT_MAX, fContentCurRowY,
|
| fContentWidthLimit, fContentCurRowAvailWidth,
|
| fContentCurRowHeight, bAddedItemInRow, bForceEndPage,
|
| pContext);
|
| - delete pProcessor;
|
| - pProcessor = NULL;
|
| }
|
| } else {
|
| if (JudgeLeaderOrTrailerForOccur(pLeaderNode)) {
|
| @@ -2715,6 +2710,7 @@ XFA_ItemLayoutProcessorResult CXFA_ItemLayoutProcessor::DoLayoutFlowedContainer(
|
| : (bIsManualBreak ? XFA_ItemLayoutProcessorResult_ManualBreak
|
| : XFA_ItemLayoutProcessorResult_PageFullBreak);
|
| }
|
| +
|
| FX_BOOL CXFA_ItemLayoutProcessor::CalculateRowChildPosition(
|
| CFX_ArrayTemplate<CXFA_ContentLayoutItem*>(&rgCurLineLayoutItems)[3],
|
| XFA_ATTRIBUTEENUM eFlowStrategy,
|
|
|