Kaydet (Commit) 79d19a73 authored tarafından Miklos Vajna's avatar Miklos Vajna

DocxAttributeOutput::m_postponedOLE: use std::unique_ptr<>

Change-Id: I4b8c6d59f024c2319ab14200118416b0ff23d7f5
üst 6eaf6c8d
...@@ -1608,8 +1608,8 @@ void DocxAttributeOutput::StartRunProperties() ...@@ -1608,8 +1608,8 @@ void DocxAttributeOutput::StartRunProperties()
assert(!m_postponedDMLDrawing); assert(!m_postponedDMLDrawing);
m_postponedDMLDrawing = new std::list< PostponedDrawing >; m_postponedDMLDrawing = new std::list< PostponedDrawing >;
assert( !m_postponedOLE ); assert( !m_pPostponedOLEs );
m_postponedOLE = new std::list< PostponedOLE >; m_pPostponedOLEs.reset(new std::list<PostponedOLE>());
} }
void DocxAttributeOutput::InitCollectedRunProperties() void DocxAttributeOutput::InitCollectedRunProperties()
...@@ -4507,11 +4507,11 @@ void DocxAttributeOutput::WritePostponedFormControl(const SdrObject* pObject) ...@@ -4507,11 +4507,11 @@ void DocxAttributeOutput::WritePostponedFormControl(const SdrObject* pObject)
bool DocxAttributeOutput::PostponeOLE( const SdrObject*, SwOLENode& rNode, const Size& rSize, const SwFlyFrmFmt* pFlyFrmFmt ) 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 //cannot be postponed, try to write now
WriteOLE( rNode, rSize, pFlyFrmFmt ); WriteOLE( rNode, rSize, pFlyFrmFmt );
else else
m_postponedOLE->push_back( PostponedOLE( &rNode, rSize, pFlyFrmFmt ) ); m_pPostponedOLEs->push_back( PostponedOLE( &rNode, rSize, pFlyFrmFmt ) );
return true; return true;
} }
...@@ -4520,19 +4520,18 @@ bool DocxAttributeOutput::PostponeOLE( const SdrObject*, SwOLENode& rNode, const ...@@ -4520,19 +4520,18 @@ bool DocxAttributeOutput::PostponeOLE( const SdrObject*, SwOLENode& rNode, const
*/ */
void DocxAttributeOutput::WritePostponedOLE() void DocxAttributeOutput::WritePostponedOLE()
{ {
if( m_postponedOLE == NULL ) if( !m_pPostponedOLEs )
return; return;
for( std::list< PostponedOLE >::iterator it = m_postponedOLE->begin(); for( std::list< PostponedOLE >::iterator it = m_pPostponedOLEs->begin();
it != m_postponedOLE->end(); it != m_pPostponedOLEs->end();
++it ) ++it )
{ {
WriteOLE( *it->object, it->size, it->frame ); WriteOLE( *it->object, it->size, it->frame );
} }
// clear list of postponed objects // clear list of postponed objects
delete m_postponedOLE; m_pPostponedOLEs.reset(0);
m_postponedOLE = NULL;
} }
void DocxAttributeOutput::WriteOLE( SwOLENode& rNode, const Size& rSize, const SwFlyFrmFmt* rFlyFrmFmt ) void DocxAttributeOutput::WriteOLE( SwOLENode& rNode, const Size& rSize, const SwFlyFrmFmt* rFlyFrmFmt )
...@@ -4751,8 +4750,7 @@ void DocxAttributeOutput::WritePostponedDMLDrawing() ...@@ -4751,8 +4750,7 @@ void DocxAttributeOutput::WritePostponedDMLDrawing()
// Clear the list early, this method may be called recursively. // Clear the list early, this method may be called recursively.
std::list<PostponedDrawing>* postponedDMLDrawing = m_postponedDMLDrawing; std::list<PostponedDrawing>* postponedDMLDrawing = m_postponedDMLDrawing;
m_postponedDMLDrawing = NULL; m_postponedDMLDrawing = NULL;
std::list<PostponedOLE>* postponedOLE = m_postponedOLE; std::unique_ptr< std::list<PostponedOLE> > pPostponedOLEs(m_pPostponedOLEs.release());
m_postponedOLE = 0;
bool bStartedParaSdt = m_bStartedParaSdt; bool bStartedParaSdt = m_bStartedParaSdt;
for( std::list< PostponedDrawing >::iterator it = postponedDMLDrawing->begin(); for( std::list< PostponedDrawing >::iterator it = postponedDMLDrawing->begin();
...@@ -4768,7 +4766,7 @@ void DocxAttributeOutput::WritePostponedDMLDrawing() ...@@ -4768,7 +4766,7 @@ void DocxAttributeOutput::WritePostponedDMLDrawing()
m_bStartedParaSdt = bStartedParaSdt; m_bStartedParaSdt = bStartedParaSdt;
delete postponedDMLDrawing; delete postponedDMLDrawing;
m_postponedOLE = postponedOLE; m_pPostponedOLEs.reset(pPostponedOLEs.release());
} }
void DocxAttributeOutput::OutputFlyFrame_Impl( const sw::Frame &rFrame, const Point& rNdTopLeft ) void DocxAttributeOutput::OutputFlyFrame_Impl( const sw::Frame &rFrame, const Point& rNdTopLeft )
...@@ -8286,7 +8284,6 @@ DocxAttributeOutput::DocxAttributeOutput( DocxExport &rExport, FSHelperPtr pSeri ...@@ -8286,7 +8284,6 @@ DocxAttributeOutput::DocxAttributeOutput( DocxExport &rExport, FSHelperPtr pSeri
m_nFieldsInHyperlink( 0 ), m_nFieldsInHyperlink( 0 ),
m_postponedVMLDrawing(NULL), m_postponedVMLDrawing(NULL),
m_postponedDMLDrawing(NULL), m_postponedDMLDrawing(NULL),
m_postponedOLE( NULL ),
m_postponedMath( NULL ), m_postponedMath( NULL ),
m_postponedChart( NULL ), m_postponedChart( NULL ),
pendingPlaceholder( NULL ), pendingPlaceholder( NULL ),
......
...@@ -859,7 +859,7 @@ private: ...@@ -859,7 +859,7 @@ private:
const Size size; const Size size;
const SwFlyFrmFmt* frame; const SwFlyFrmFmt* frame;
}; };
std::list< PostponedOLE >* m_postponedOLE; std::unique_ptr< std::list<PostponedOLE> > m_pPostponedOLEs;
const SwOLENode* m_postponedMath; const SwOLENode* m_postponedMath;
const SdrObject* m_postponedChart; const SdrObject* m_postponedChart;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment