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

Miklos Vajna vmiklos at collabora.co.uk
Mon Apr 13 00:08:57 PDT 2015


 sw/source/filter/ww8/docxattributeoutput.cxx |   23 ++++++++++-------------
 sw/source/filter/ww8/docxattributeoutput.hxx |    2 +-
 2 files changed, 11 insertions(+), 14 deletions(-)

New commits:
commit 79d19a739c80c686e9ebfadb5f65eb1ff53dce65
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Mon Apr 13 09:07:22 2015 +0200

    DocxAttributeOutput::m_postponedOLE: use std::unique_ptr<>
    
    Change-Id: I4b8c6d59f024c2319ab14200118416b0ff23d7f5

diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index c92d111..ddf822f 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -1608,8 +1608,8 @@ void DocxAttributeOutput::StartRunProperties()
     assert(!m_postponedDMLDrawing);
     m_postponedDMLDrawing = new std::list< PostponedDrawing >;
 
-    assert( !m_postponedOLE );
-    m_postponedOLE = new std::list< PostponedOLE >;
+    assert( !m_pPostponedOLEs );
+    m_pPostponedOLEs.reset(new std::list<PostponedOLE>());
 }
 
 void DocxAttributeOutput::InitCollectedRunProperties()
@@ -4507,11 +4507,11 @@ void DocxAttributeOutput::WritePostponedFormControl(const SdrObject* pObject)
 
 bool DocxAttributeOutput::PostponeOLE( const SdrObject*, SwOLENode& rNode, const Size& rSize, const SwFlyFrmFmt* pFlyFrmFmt )
 {
-    if( m_postponedOLE == NULL )
+    if( !m_pPostponedOLEs )
         //cannot be postponed, try to write now
         WriteOLE( rNode, rSize, pFlyFrmFmt );
     else
-        m_postponedOLE->push_back( PostponedOLE( &rNode, rSize, pFlyFrmFmt ) );
+        m_pPostponedOLEs->push_back( PostponedOLE( &rNode, rSize, pFlyFrmFmt ) );
     return true;
 }
 
@@ -4520,19 +4520,18 @@ bool DocxAttributeOutput::PostponeOLE( const SdrObject*, SwOLENode& rNode, const
  */
 void DocxAttributeOutput::WritePostponedOLE()
 {
-    if( m_postponedOLE == NULL )
+    if( !m_pPostponedOLEs )
         return;
 
-    for( std::list< PostponedOLE >::iterator it = m_postponedOLE->begin();
-         it != m_postponedOLE->end();
+    for( std::list< PostponedOLE >::iterator it = m_pPostponedOLEs->begin();
+         it != m_pPostponedOLEs->end();
          ++it )
     {
         WriteOLE( *it->object, it->size, it->frame );
     }
 
     // clear list of postponed objects
-    delete m_postponedOLE;
-    m_postponedOLE = NULL;
+    m_pPostponedOLEs.reset(0);
 }
 
 void DocxAttributeOutput::WriteOLE( SwOLENode& rNode, const Size& rSize, const SwFlyFrmFmt* rFlyFrmFmt )
@@ -4751,8 +4750,7 @@ void DocxAttributeOutput::WritePostponedDMLDrawing()
     // Clear the list early, this method may be called recursively.
     std::list<PostponedDrawing>* postponedDMLDrawing = m_postponedDMLDrawing;
     m_postponedDMLDrawing = NULL;
-    std::list<PostponedOLE>* postponedOLE = m_postponedOLE;
-    m_postponedOLE = 0;
+    std::unique_ptr< std::list<PostponedOLE> > pPostponedOLEs(m_pPostponedOLEs.release());
 
     bool bStartedParaSdt = m_bStartedParaSdt;
     for( std::list< PostponedDrawing >::iterator it = postponedDMLDrawing->begin();
@@ -4768,7 +4766,7 @@ void DocxAttributeOutput::WritePostponedDMLDrawing()
     m_bStartedParaSdt = bStartedParaSdt;
 
     delete postponedDMLDrawing;
-    m_postponedOLE = postponedOLE;
+    m_pPostponedOLEs.reset(pPostponedOLEs.release());
 }
 
 void DocxAttributeOutput::OutputFlyFrame_Impl( const sw::Frame &rFrame, const Point& rNdTopLeft )
@@ -8286,7 +8284,6 @@ DocxAttributeOutput::DocxAttributeOutput( DocxExport &rExport, FSHelperPtr pSeri
       m_nFieldsInHyperlink( 0 ),
       m_postponedVMLDrawing(NULL),
       m_postponedDMLDrawing(NULL),
-      m_postponedOLE( NULL ),
       m_postponedMath( NULL ),
       m_postponedChart( NULL ),
       pendingPlaceholder( NULL ),
diff --git a/sw/source/filter/ww8/docxattributeoutput.hxx b/sw/source/filter/ww8/docxattributeoutput.hxx
index 10eb0f5..6005344 100644
--- a/sw/source/filter/ww8/docxattributeoutput.hxx
+++ b/sw/source/filter/ww8/docxattributeoutput.hxx
@@ -859,7 +859,7 @@ private:
         const Size size;
         const SwFlyFrmFmt* frame;
     };
-    std::list< PostponedOLE >* m_postponedOLE;
+    std::unique_ptr< std::list<PostponedOLE> > m_pPostponedOLEs;
 
     const SwOLENode* m_postponedMath;
     const SdrObject* m_postponedChart;


More information about the Libreoffice-commits mailing list