[Libreoffice-commits] core.git: sw/source

Stephan Bergmann sbergman at redhat.com
Mon Oct 9 10:46:31 UTC 2017


 sw/source/core/layout/tabfrm.cxx |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

New commits:
commit 8b490c17243248e2824633d0438b0fc290d94f9b
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Oct 9 12:44:46 2017 +0200

    tdf#112942: Apparently, rTab.GetFollow() can change in between
    
    ...the calls to TableSplitRecalcLock and TableSplitRecalcUnlock
    
    Change-Id: Iacb0d88ccb323fb248129daeeeb207b25f148753

diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index efcc0df63223..ec2e72209252 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -662,7 +662,7 @@ static bool lcl_RecalcSplitLine( SwRowFrame& rLastLine, SwRowFrame& rFollowLine,
 
     // Lock this tab frame and its follow
     bool bUnlockMaster = false;
-    bool bUnlockFollow = false;
+    SwFlowFrame * bUnlockFollow = nullptr;
     SwTabFrame* pMaster = rTab.IsFollow() ? rTab.FindMaster() : nullptr;
     if ( pMaster && !pMaster->IsJoinLocked() )
     {
@@ -671,8 +671,8 @@ static bool lcl_RecalcSplitLine( SwRowFrame& rLastLine, SwRowFrame& rFollowLine,
     }
     if ( !rTab.GetFollow()->IsJoinLocked() )
     {
-        bUnlockFollow = true;
-        ::TableSplitRecalcLock( rTab.GetFollow() );
+        bUnlockFollow = rTab.GetFollow();
+        ::TableSplitRecalcLock( bUnlockFollow );
     }
 
     bool bInSplit = rLastLine.IsInSplit();
@@ -689,7 +689,7 @@ static bool lcl_RecalcSplitLine( SwRowFrame& rLastLine, SwRowFrame& rFollowLine,
 
     // Unlock this tab frame and its follow
     if ( bUnlockFollow )
-        ::TableSplitRecalcUnlock( rTab.GetFollow() );
+        ::TableSplitRecalcUnlock( bUnlockFollow );
     if ( bUnlockMaster )
         ::TableSplitRecalcUnlock( pMaster );
 


More information about the Libreoffice-commits mailing list