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

Michael Stahl mstahl at redhat.com
Fri May 9 03:23:22 PDT 2014


 sw/source/core/doc/doclay.cxx   |    1 +
 sw/source/ui/utlui/unotools.cxx |    3 +++
 2 files changed, 4 insertions(+)

New commits:
commit b5f4a53d6d718e170303ea3d9344f86735fb8c99
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu May 8 23:43:56 2014 +0200

    fdo#77720: Mail Merge: reset cursors after clearing document
    
    The root cause for the crash is that the shell has an invalid cursor
    that does not point at a paragraph; this is because first the document
    is filled and the cursor is pointed at the content of a frame, then the
    document is cleared from SwFrmCtrlWindow::Resize() [not sure why?] and
    at that point the cursor remains on an SwEndNode (which is invalid).
    
    Change-Id: I47c1e2a34d5579953c1896ff0895568978e72bc7
    (cherry picked from commit abb0549dd1744a35b0464faac55999b0d5968212)
    Reviewed-on: https://gerrit.libreoffice.org/9288
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/core/doc/doclay.cxx b/sw/source/core/doc/doclay.cxx
index 2ea2fb9..815a4d9 100644
--- a/sw/source/core/doc/doclay.cxx
+++ b/sw/source/core/doc/doclay.cxx
@@ -717,6 +717,7 @@ SwFlyFrmFmt* SwDoc::MakeFlySection( RndStdIds eAnchorType,
             (SwNodeIndex( GetNodes().GetEndOfAutotext()),
              GetTxtCollFromPool( nCollId ));
         SwCntntNode * pAnchorNode = pAnchorPos->nNode.GetNode().GetCntntNode();
+        assert(pAnchorNode); // pAnchorNode from cursor, must be valid
 
         const SfxPoolItem * pItem = NULL;
 
diff --git a/sw/source/ui/utlui/unotools.cxx b/sw/source/ui/utlui/unotools.cxx
index e25deec..b5b36ba 100644
--- a/sw/source/ui/utlui/unotools.cxx
+++ b/sw/source/ui/utlui/unotools.cxx
@@ -415,7 +415,10 @@ void SwOneExampleFrame::ClearDocument( sal_Bool bStartUpdateTimer )
             SwEditShell* pSh = pDoc->GetEditShell();
             pSh->LockPaint();
             pSh->StartAllAction();
+            pSh->KillPams();
+            pSh->ClearMark();
             pDoc->ClearDoc();
+            pSh->ClearUpCrsrs();
 
             if( aLoadedTimer.IsActive() || !bStartUpdateTimer )
             {


More information about the Libreoffice-commits mailing list