summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <Michael.Stahl@cib.de>2019-06-21 12:44:18 +0200
committerCaolán McNamara <caolanm@redhat.com>2019-06-26 09:55:47 +0200
commit3cf59bdd28285ef0828cf43f9cada5d7fcd23a6f (patch)
tree46b148b0227e89de3027a93e7e11bf50a60e044a
parentbc95445e08e07a5d23e2c833b47a31ba0a217517 (diff)
sw: fix SwUiWriterTest::testTdf114306_2
sw/qa/extras/uiwriter/uiwriter.cxx:5908:SwUiWriterTest::testTdf114306_2 equality assertion failed - Expected: 4 - Actual : 5 Mysteriously this doesn't happen on master when running make sw.check but reproduces with make CppunitTest_sw_uiwriter CPPUNIT_TEST_NAME="testTdf114306_2" The problem is that the early-returns in SwTabFrame::RemoveFollowFlowLine() are too late: the SetFollowFlowLine( false ); was already executed and henceforth the SwTabFrame thinks it doesn't have a follow-flow-line, so it will never be merged again and new follow-flow-line may be created. (test fail is regression from 1e6dec4b4313212a3bdc6bb06155fd65e795368b) Change-Id: Ic5a2ef4219f212c8b4d34fd47d3d67f32de45f8e Reviewed-on: https://gerrit.libreoffice.org/74500 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> (cherry picked from commit 98e186a37388d35320b813142b4fc7f0071f5b43) Reviewed-on: https://gerrit.libreoffice.org/74521 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 955add820ecc160647657de308492a0650527221) Reviewed-on: https://gerrit.libreoffice.org/74628 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
-rw-r--r--sw/source/core/inc/rowfrm.hxx2
-rw-r--r--sw/source/core/layout/tabfrm.cxx10
2 files changed, 6 insertions, 6 deletions
diff --git a/sw/source/core/inc/rowfrm.hxx b/sw/source/core/inc/rowfrm.hxx
index 8b14b0793cb4..69177e697f70 100644
--- a/sw/source/core/inc/rowfrm.hxx
+++ b/sw/source/core/inc/rowfrm.hxx
@@ -33,7 +33,7 @@ class SwRowFrame: public SwLayoutFrame
virtual SwTwips GrowFrame ( SwTwips, bool bTst = false, bool bInfo = false ) override;
const SwTableLine * m_pTabLine;
- SwRowFrame * m_pFollowRow;
+ SwRowFrame * m_pFollowRow; ///< note: this is *only* set on old-style tables!
// #i29550#
sal_uInt16 mnTopMarginForLowers;
sal_uInt16 mnBottomMarginForLowers;
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index 75c0c7444d1e..694e1b70fb03 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -878,11 +878,6 @@ bool SwTabFrame::RemoveFollowFlowLine()
pFollowFlowLine &&
pLastLine, "There should be a flowline in the follow" );
- // We have to reset the flag here, because lcl_MoveRowContent
- // calls a GrowFrame(), which has a different behavior if
- // this flag is set.
- SetFollowFlowLine( false );
-
// #140081# Make code robust.
if ( !pFollowFlowLine || !pLastLine )
return true;
@@ -892,6 +887,11 @@ bool SwTabFrame::RemoveFollowFlowLine()
return false;
}
+ // We have to reset the flag here, because lcl_MoveRowContent
+ // calls a GrowFrame(), which has a different behavior if
+ // this flag is set.
+ SetFollowFlowLine( false );
+
// Move content
lcl_MoveRowContent( *pFollowFlowLine, *static_cast<SwRowFrame*>(pLastLine) );