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

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


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

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

    Resolves: rhbz#1162352 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
    
    (cherry picked from commit 3cb3396e4a4b36e5a05892da16b076feaef6b2b1)
    
    Change-Id: I90e998561f2645ebfa51423bcaab9a4195144338
    Reviewed-on: https://gerrit.libreoffice.org/13930
    Tested-by: Michael Stahl <mstahl at redhat.com>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>

diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx
index 3d9cbff..5a82a57 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