[Libreoffice-commits] core.git: Branch 'libreoffice-4-3' - 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 bfe76e7f104808c6cb665fe09c1a4ac0386b460c
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)
    
    Conflicts:
    	sw/source/core/doc/docfmt.cxx
    
    Change-Id: I90e998561f2645ebfa51423bcaab9a4195144338
    Reviewed-on: https://gerrit.libreoffice.org/13933
    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 18e5137..8aa95d4 100644
--- a/sw/source/core/doc/docfmt.cxx
+++ b/sw/source/core/doc/docfmt.cxx
@@ -363,10 +363,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())
@@ -468,10 +468,12 @@ void SwDoc::ResetAttrs( const SwPaM &rRg,
         GetNodes().ForEach( pStt->nNode, aTmpEnd, lcl_RstTxtAttr, &aPara );
     }
 
+    SetModified();
+
+    xDataChanged.reset(); //before delete pPam
+
     if( pPam != &rRg )
         delete pPam;
-
-    SetModified();
 }
 
 #define DELETECHARSETS if ( bDelete ) { delete pCharSet; delete pOtherSet; }


More information about the Libreoffice-commits mailing list