[Libreoffice-commits] core.git: Branch 'distro/lhm/libreoffice-6-4+backports' - sw/source

Michael Stahl (via logerrit) logerrit at kemper.freedesktop.org
Fri May 21 20:18:03 UTC 2021


 sw/source/core/doc/DocumentRedlineManager.cxx |    2 ++
 sw/source/core/text/txtfrm.cxx                |    2 ++
 2 files changed, 4 insertions(+)

New commits:
commit ffd69465a547cd5acad92aad13142edbac1e0882
Author:     Michael Stahl <michael.stahl at allotropia.de>
AuthorDate: Thu Jan 14 20:10:24 2021 +0100
Commit:     Michael Stahl <michael.stahl at allotropia.de>
CommitDate: Fri May 21 22:17:29 2021 +0200

    tdf#135014 sw_redlinehide: fix missing frames when removing fieldmark
    
    A fieldmark was deleted. UpdateFramesForRemoveDeleteRedline() deleted
    the MergedPara but its start node was before the start node of the
    fieldmark, and then MakeFrames() didn't find a frame on the preceding
    node and did nothing.
    
    Similar problem likely possible with redline.
    
    Change-Id: I532f9a67c0268f3287736a61da4cc9fefec7b8e4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109307
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.stahl at allotropia.de>
    (cherry picked from commit 32e104c1d6be0ffe6ed6c4e08af868c87b3c258c)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109347
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115929
    Tested-by: Michael Stahl <michael.stahl at allotropia.de>

diff --git a/sw/source/core/doc/DocumentRedlineManager.cxx b/sw/source/core/doc/DocumentRedlineManager.cxx
index ff9b05743d10..8ae32f266bdb 100644
--- a/sw/source/core/doc/DocumentRedlineManager.cxx
+++ b/sw/source/core/doc/DocumentRedlineManager.cxx
@@ -301,6 +301,8 @@ void UpdateFramesForRemoveDeleteRedline(SwDoc & rDoc, SwPaM const& rPam)
                     pFrame->SetMergedPara(sw::CheckParaRedlineMerge(
                         *pFrame, rFirstNode, eMode));
                     eMode = sw::FrameMode::New; // Existing is not idempotent!
+                    // update pNode so MakeFrames starts on 2nd node
+                    pNode = &rFirstNode;
                 }
             }
             if (pLast != pNode)
diff --git a/sw/source/core/text/txtfrm.cxx b/sw/source/core/text/txtfrm.cxx
index 17636cda44e3..23cb91a458c8 100644
--- a/sw/source/core/text/txtfrm.cxx
+++ b/sw/source/core/text/txtfrm.cxx
@@ -1292,6 +1292,8 @@ void SwTextFrame::SetMergedPara(std::unique_ptr<sw::MergedPara> p)
             pFirst->Add(this); // must register at node again
         }
     }
+    // postcondition: frame must be listening somewhere
+    assert(m_pMergedPara || GetDep());
 }
 
 const OUString& SwTextFrame::GetText() const


More information about the Libreoffice-commits mailing list