diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-02-18 00:06:33 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2012-02-20 17:56:22 +0100 |
commit | a86b99f368bdc5fb9f0461129808b31f5d2e3401 (patch) | |
tree | 7932dd0ce96630a73000a8627de459ae3b90a74e | |
parent | 5ccce56c5bd5e220c0fa81ba387eefa3ed8de0a4 (diff) |
fdo#39510: fix yet more layout crashes in ~SwRootFrm:
Call SwRootFrm::RemoveFtns with the proper boolean to also eliminate
EndNotes, and fix a faulty while loop in RemoveFtns that's been preventing
removal of footnotes in certain sections since the dawn of CVS history.
(regression from CWS swlayoutrefactoring, crashes on bugdoc from i#101776)
(cherry picked from commit 962d0500c4debaef43e5f146e47e08c66d851562)
Signed-off-by: Miklos Vajna <vmiklos@suse.cz>
-rw-r--r-- | sw/source/core/layout/ftnfrm.cxx | 2 | ||||
-rw-r--r-- | sw/source/core/layout/newfrm.cxx | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/sw/source/core/layout/ftnfrm.cxx b/sw/source/core/layout/ftnfrm.cxx index 1b4a14e52a07..2d8ca286ac30 100644 --- a/sw/source/core/layout/ftnfrm.cxx +++ b/sw/source/core/layout/ftnfrm.cxx @@ -1000,7 +1000,7 @@ void lcl_RemoveFtns( SwFtnBossFrm* pBoss, sal_Bool bPageOnly, sal_Bool bEndNotes if( pBody && pBody->Lower() ) { SwFrm* pLow = pBody->Lower(); - while( pLow->GetNext() ) + while (pLow) { if( pLow->IsSctFrm() && ( !pLow->GetNext() || ((SwSectionFrm*)pLow)->IsAnyNoteAtEnd() ) && diff --git a/sw/source/core/layout/newfrm.cxx b/sw/source/core/layout/newfrm.cxx index a1675a9e2ffa..3b6b92094a4d 100644 --- a/sw/source/core/layout/newfrm.cxx +++ b/sw/source/core/layout/newfrm.cxx @@ -610,7 +610,7 @@ SwRootFrm::~SwRootFrm() // also searches backwards to find the master of footnotes, they must be // considered to be owned by the SwRootFrm and also be destroyed here, // before tearing down the (now footnote free) rest of the layout. - AllRemoveFtns(); + RemoveFtns(0, false, true); if(pBlink) pBlink->FrmDelete( this ); |