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, |