| 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 17f97da7792eb89c10349e4d285569c5b7aef8db..4ddadf0e0ad7471d197d96423322ee5240985b21 100644
|
| --- a/xfa/fxfa/parser/xfa_layout_itemlayout.cpp
|
| +++ b/xfa/fxfa/parser/xfa_layout_itemlayout.cpp
|
| @@ -546,27 +546,29 @@ void CXFA_LayoutItem::RemoveChild(CXFA_LayoutItem* pChildItem) {
|
| CXFA_ContentLayoutItem* CXFA_ItemLayoutProcessor::ExtractLayoutItem() {
|
| CXFA_ContentLayoutItem* pLayoutItem = m_pLayoutItem;
|
| if (pLayoutItem) {
|
| - m_pLayoutItem = (CXFA_ContentLayoutItem*)pLayoutItem->m_pNextSibling;
|
| - pLayoutItem->m_pNextSibling = NULL;
|
| - }
|
| - if (m_nCurChildNodeStage == XFA_ItemLayoutProcessorStages_Done &&
|
| - ToContentLayoutItem(m_pOldLayoutItem)) {
|
| - if (m_pOldLayoutItem->m_pPrev) {
|
| - m_pOldLayoutItem->m_pPrev->m_pNext = NULL;
|
| - }
|
| - CXFA_FFNotify* pNotify =
|
| - m_pOldLayoutItem->m_pFormNode->GetDocument()->GetParser()->GetNotify();
|
| - CXFA_LayoutProcessor* pDocLayout =
|
| - m_pOldLayoutItem->m_pFormNode->GetDocument()->GetDocLayout();
|
| - CXFA_ContentLayoutItem* pOldLayoutItem = m_pOldLayoutItem;
|
| - while (pOldLayoutItem) {
|
| - CXFA_ContentLayoutItem* pNextOldLayoutItem = pOldLayoutItem->m_pNext;
|
| - pNotify->OnLayoutItemRemoving(pDocLayout, pOldLayoutItem);
|
| - delete pOldLayoutItem;
|
| - pOldLayoutItem = pNextOldLayoutItem;
|
| - }
|
| - m_pOldLayoutItem = NULL;
|
| + m_pLayoutItem =
|
| + static_cast<CXFA_ContentLayoutItem*>(pLayoutItem->m_pNextSibling);
|
| + pLayoutItem->m_pNextSibling = nullptr;
|
| }
|
| + if (m_nCurChildNodeStage != XFA_ItemLayoutProcessorStages_Done ||
|
| + !ToContentLayoutItem(m_pOldLayoutItem))
|
| + return pLayoutItem;
|
| + if (m_pOldLayoutItem->m_pPrev)
|
| + m_pOldLayoutItem->m_pPrev->m_pNext = nullptr;
|
| + CXFA_FFNotify* pNotify =
|
| + m_pOldLayoutItem->m_pFormNode->GetDocument()->GetParser()->GetNotify();
|
| + CXFA_LayoutProcessor* pDocLayout =
|
| + m_pOldLayoutItem->m_pFormNode->GetDocument()->GetDocLayout();
|
| + CXFA_ContentLayoutItem* pOldLayoutItem = m_pOldLayoutItem;
|
| + while (pOldLayoutItem) {
|
| + CXFA_ContentLayoutItem* pNextOldLayoutItem = pOldLayoutItem->m_pNext;
|
| + pNotify->OnLayoutItemRemoving(pDocLayout, pOldLayoutItem);
|
| + if (pOldLayoutItem->m_pParent)
|
| + pOldLayoutItem->m_pParent->RemoveChild(pOldLayoutItem);
|
| + delete pOldLayoutItem;
|
| + pOldLayoutItem = pNextOldLayoutItem;
|
| + }
|
| + m_pOldLayoutItem = nullptr;
|
| return pLayoutItem;
|
| }
|
| static FX_BOOL XFA_ItemLayoutProcessor_FindBreakNode(
|
|
|