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

Michael Stahl (via logerrit) logerrit at kemper.freedesktop.org
Wed Jun 24 14:29:13 UTC 2020


 sw/source/core/docnode/nodes.cxx |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

New commits:
commit f4b6ac83a7cd08c5314d3c1a93af845f3996b34a
Author:     Michael Stahl <Michael.Stahl at cib.de>
AuthorDate: Fri Jun 19 15:05:42 2020 +0200
Commit:     Miklos Vajna <vmiklos at collabora.com>
CommitDate: Wed Jun 24 16:28:35 2020 +0200

    tdf#132326 sw_redlinehide: no frames allowed in Undo SwNodesArray
    
    This crashes in SwAccessibleParagraph::GetRealHeadingLevel(); the a11y
    should have been disposed earlier because the node it's connected to is
    in the Undo SwNodesArray.
    
    When SwUndoDelete::SwUndoDelete() calls SwNodes::MoveNodes(), all
    existing frames must be destroyed; the MoveNodes() would reset its flag
    temporarily inside a section, to delay creating the frames inside the
    section when moving to the live SwNodesArray, but this also prevents
    the deletion when moving in the other direction.
    
    (crash is regression from 723728cd358693b8f4bc9d913541aa4479f2bd48)
    
    Change-Id: I13719bf98ea96b8d68db3ee78cf7f4b61a99e7e5
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96734
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.stahl at cib.de>
    (cherry picked from commit a60dd9ef1361c5925803acaa5292e99277d1faf3)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96701
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
    (cherry picked from commit 088324bbd391c858dd17832708b465eb5b6046e6)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96806
    Reviewed-by: Xisco Fauli <xiscofauli at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
    Tested-by: Miklos Vajna <vmiklos at collabora.com>

diff --git a/sw/source/core/docnode/nodes.cxx b/sw/source/core/docnode/nodes.cxx
index 2feef62276df..10f4ba61be03 100644
--- a/sw/source/core/docnode/nodes.cxx
+++ b/sw/source/core/docnode/nodes.cxx
@@ -661,7 +661,11 @@ bool SwNodes::MoveNodes( const SwNodeRange& aRange, SwNodes & rNodes,
                     {
                         pSctNd->NodesArrChgd();
                         ++nSectNdCnt;
-                        bNewFrames = false;
+                        // tdf#132326 do not let frames survive in undo nodes
+                        if (!GetDoc()->GetIDocumentUndoRedo().IsUndoNodes(rNodes))
+                        {
+                            bNewFrames = false;
+                        }
                     }
                 }
             }


More information about the Libreoffice-commits mailing list