[Libreoffice-commits] core.git: Branch 'libreoffice-6-2-5' - sw/source

Michael Stahl (via logerrit) logerrit at kemper.freedesktop.org
Wed Jun 26 07:56:29 UTC 2019


 sw/source/core/inc/rowfrm.hxx    |    2 +-
 sw/source/core/layout/tabfrm.cxx |   10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

New commits:
commit 3cf59bdd28285ef0828cf43f9cada5d7fcd23a6f
Author:     Michael Stahl <Michael.Stahl at cib.de>
AuthorDate: Fri Jun 21 12:44:18 2019 +0200
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Wed Jun 26 09:55:47 2019 +0200

    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 at cib.de>
    (cherry picked from commit 98e186a37388d35320b813142b4fc7f0071f5b43)
    Reviewed-on: https://gerrit.libreoffice.org/74521
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>
    (cherry picked from commit 955add820ecc160647657de308492a0650527221)
    Reviewed-on: https://gerrit.libreoffice.org/74628
    Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>

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) );
 


More information about the Libreoffice-commits mailing list