| 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 528 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 539 if (pExistingChildItem) { | 539 if (pExistingChildItem) { |
| 540 pExistingChildItem->m_pNextSibling = pChildItem->m_pNextSibling; | 540 pExistingChildItem->m_pNextSibling = pChildItem->m_pNextSibling; |
| 541 } | 541 } |
| 542 } | 542 } |
| 543 pChildItem->m_pNextSibling = NULL; | 543 pChildItem->m_pNextSibling = NULL; |
| 544 pChildItem->m_pParent = NULL; | 544 pChildItem->m_pParent = NULL; |
| 545 } | 545 } |
| 546 CXFA_ContentLayoutItem* CXFA_ItemLayoutProcessor::ExtractLayoutItem() { | 546 CXFA_ContentLayoutItem* CXFA_ItemLayoutProcessor::ExtractLayoutItem() { |
| 547 CXFA_ContentLayoutItem* pLayoutItem = m_pLayoutItem; | 547 CXFA_ContentLayoutItem* pLayoutItem = m_pLayoutItem; |
| 548 if (pLayoutItem) { | 548 if (pLayoutItem) { |
| 549 m_pLayoutItem = (CXFA_ContentLayoutItem*)pLayoutItem->m_pNextSibling; | 549 m_pLayoutItem = |
| 550 pLayoutItem->m_pNextSibling = NULL; | 550 static_cast<CXFA_ContentLayoutItem*>(pLayoutItem->m_pNextSibling); |
| 551 pLayoutItem->m_pNextSibling = nullptr; |
| 551 } | 552 } |
| 552 if (m_nCurChildNodeStage == XFA_ItemLayoutProcessorStages_Done && | 553 if (m_nCurChildNodeStage != XFA_ItemLayoutProcessorStages_Done || |
| 553 ToContentLayoutItem(m_pOldLayoutItem)) { | 554 !ToContentLayoutItem(m_pOldLayoutItem)) |
| 554 if (m_pOldLayoutItem->m_pPrev) { | 555 return pLayoutItem; |
| 555 m_pOldLayoutItem->m_pPrev->m_pNext = NULL; | 556 if (m_pOldLayoutItem->m_pPrev) |
| 556 } | 557 m_pOldLayoutItem->m_pPrev->m_pNext = nullptr; |
| 557 CXFA_FFNotify* pNotify = | 558 CXFA_FFNotify* pNotify = |
| 558 m_pOldLayoutItem->m_pFormNode->GetDocument()->GetParser()->GetNotify(); | 559 m_pOldLayoutItem->m_pFormNode->GetDocument()->GetParser()->GetNotify(); |
| 559 CXFA_LayoutProcessor* pDocLayout = | 560 CXFA_LayoutProcessor* pDocLayout = |
| 560 m_pOldLayoutItem->m_pFormNode->GetDocument()->GetDocLayout(); | 561 m_pOldLayoutItem->m_pFormNode->GetDocument()->GetDocLayout(); |
| 561 CXFA_ContentLayoutItem* pOldLayoutItem = m_pOldLayoutItem; | 562 CXFA_ContentLayoutItem* pOldLayoutItem = m_pOldLayoutItem; |
| 562 while (pOldLayoutItem) { | 563 while (pOldLayoutItem) { |
| 563 CXFA_ContentLayoutItem* pNextOldLayoutItem = pOldLayoutItem->m_pNext; | 564 CXFA_ContentLayoutItem* pNextOldLayoutItem = pOldLayoutItem->m_pNext; |
| 564 pNotify->OnLayoutItemRemoving(pDocLayout, pOldLayoutItem); | 565 pNotify->OnLayoutItemRemoving(pDocLayout, pOldLayoutItem); |
| 565 delete pOldLayoutItem; | 566 if (pOldLayoutItem->m_pParent) |
| 566 pOldLayoutItem = pNextOldLayoutItem; | 567 pOldLayoutItem->m_pParent->RemoveChild(pOldLayoutItem); |
| 567 } | 568 delete pOldLayoutItem; |
| 568 m_pOldLayoutItem = NULL; | 569 pOldLayoutItem = pNextOldLayoutItem; |
| 569 } | 570 } |
| 571 m_pOldLayoutItem = nullptr; |
| 570 return pLayoutItem; | 572 return pLayoutItem; |
| 571 } | 573 } |
| 572 static FX_BOOL XFA_ItemLayoutProcessor_FindBreakNode( | 574 static FX_BOOL XFA_ItemLayoutProcessor_FindBreakNode( |
| 573 CXFA_Node* pContainerNode, | 575 CXFA_Node* pContainerNode, |
| 574 CXFA_Node*& pCurActionNode, | 576 CXFA_Node*& pCurActionNode, |
| 575 XFA_ItemLayoutProcessorStages& nCurStage, | 577 XFA_ItemLayoutProcessorStages& nCurStage, |
| 576 FX_BOOL bBreakBefore) { | 578 FX_BOOL bBreakBefore) { |
| 577 FX_BOOL bFindRs = FALSE; | 579 FX_BOOL bFindRs = FALSE; |
| 578 for (CXFA_Node* pBreakNode = pContainerNode; pBreakNode; | 580 for (CXFA_Node* pBreakNode = pContainerNode; pBreakNode; |
| 579 pBreakNode = pBreakNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { | 581 pBreakNode = pBreakNode->GetNodeItem(XFA_NODEITEM_NextSibling)) { |
| (...skipping 2382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2962 (int32_t)(uintptr_t)m_PendingNodesCount.GetValueAt(pTemplate); | 2964 (int32_t)(uintptr_t)m_PendingNodesCount.GetValueAt(pTemplate); |
| 2963 if (iCount >= iMax) { | 2965 if (iCount >= iMax) { |
| 2964 return FALSE; | 2966 return FALSE; |
| 2965 } | 2967 } |
| 2966 iCount++; | 2968 iCount++; |
| 2967 m_PendingNodesCount.SetAt(pTemplate, (void*)(uintptr_t)(iCount)); | 2969 m_PendingNodesCount.SetAt(pTemplate, (void*)(uintptr_t)(iCount)); |
| 2968 return TRUE; | 2970 return TRUE; |
| 2969 } | 2971 } |
| 2970 return TRUE; | 2972 return TRUE; |
| 2971 } | 2973 } |
| OLD | NEW |