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

Caolán McNamara caolanm at redhat.com
Thu Jan 15 06:46:12 PST 2015


 sw/source/core/doc/docfmt.cxx |   10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

New commits:
commit 3cb3396e4a4b36e5a05892da16b076feaef6b2b1
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jan 15 14:43:27 2015 +0000

    Resolves: rhbz#SwDataChanged dtor accesses deleted PaM
    
    an old bug that I finally hit on by typing one paragraph
    of three lines consisting of repeated "Apple " and the cursor
    at position 0 and click the bullet icon
    
    Change-Id: I90e998561f2645ebfa51423bcaab9a4195144338

diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx
index 89437a9..d965a05 100644
--- a/sw/source/core/doc/docfmt.cxx
+++ b/sw/source/core/doc/docfmt.cxx
@@ -289,10 +289,10 @@ void SwDoc::ResetAttrs( const SwPaM &rRg,
     }
 
     // #i96644#
-    boost::scoped_ptr< SwDataChanged > pDataChanged;
+    boost::scoped_ptr< SwDataChanged > xDataChanged;
     if ( bSendDataChangedEvents )
     {
-        pDataChanged.reset( new SwDataChanged( *pPam ) );
+        xDataChanged.reset( new SwDataChanged( *pPam ) );
     }
     SwHistory* pHst = 0;
     if (GetIDocumentUndoRedo().DoesUndo())
@@ -394,10 +394,12 @@ void SwDoc::ResetAttrs( const SwPaM &rRg,
         GetNodes().ForEach( pStt->nNode, aTmpEnd, sw::DocumentContentOperationsManager::lcl_RstTxtAttr, &aPara );
     }
 
+    getIDocumentState().SetModified();
+
+    xDataChanged.reset(); //before delete pPam
+
     if( pPam != &rRg )
         delete pPam;
-
-    getIDocumentState().SetModified();
 }
 
 /// Set the rsid of the next nLen symbols of rRg to the current session number


More information about the Libreoffice-commits mailing list