sw/source/filter/ww8/docxattributeoutput.cxx |   74 +++++++++++++--------------
 sw/source/filter/ww8/docxattributeoutput.hxx |   10 +--
 2 files changed, 43 insertions(+), 41 deletions(-)

New commits:
commit 95639e7473f36a6031ac1305e0a1ed517e351976
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Mon Aug 8 21:10:20 2022 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Sat Aug 13 18:10:52 2022 +0200

    unique_ptr->optional in DocxAttributeOutput
    
    Change-Id: Idd7432689700ad13765c50c22c30ae230647b24a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138159
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx 
b/sw/source/filter/ww8/docxattributeoutput.cxx
index 019087e9142a..8298af5de01b 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -963,8 +963,8 @@ void DocxAttributeOutput::EndParagraph( 
ww8::WW8TableNodeInfoInner::Pointer_t pT
     {
         comphelper::FlagRestorationGuard 
aStartedParaSdtGuard(m_aParagraphSdt.m_bStartedSdt, false);
 
-        assert(!m_pPostponedCustomShape);
-        m_pPostponedCustomShape.reset(new std::vector<PostponedDrawing>);
+        assert(!m_oPostponedCustomShape);
+        m_oPostponedCustomShape.emplace();
 
         // The for loop can change the size of m_aFramesOfParagraph, so the 
max size cannot be set in stone before the loop.
         size_t nFrames = m_aFramesOfParagraph.size() ? 
m_aFramesOfParagraph.top().size() : 0;
@@ -1037,13 +1037,13 @@ void DocxAttributeOutput::EndParagraph( 
ww8::WW8TableNodeInfoInner::Pointer_t pT
 
             nFrames = m_aFramesOfParagraph.size() ? 
m_aFramesOfParagraph.top().size() : 0;
         }
-        if (!m_pPostponedCustomShape->empty())
+        if (!m_oPostponedCustomShape->empty())
         {
             m_pSerializer->startElementNS(XML_w, XML_r);
             WritePostponedCustomShape();
             m_pSerializer->endElementNS( XML_w, XML_r );
         }
-        m_pPostponedCustomShape.reset();
+        m_oPostponedCustomShape.reset();
 
         if ( m_aFramesOfParagraph.size() )
             m_aFramesOfParagraph.top().clear();
@@ -2937,17 +2937,17 @@ void DocxAttributeOutput::StartRunProperties()
     }
     InitCollectedRunProperties();
 
-    assert( !m_pPostponedGraphic );
-    m_pPostponedGraphic.reset(new std::vector<PostponedGraphic>);
+    assert( !m_oPostponedGraphic );
+    m_oPostponedGraphic.emplace();
 
-    assert( !m_pPostponedDiagrams );
-    m_pPostponedDiagrams.reset(new std::vector<PostponedDiagram>);
+    assert( !m_oPostponedDiagrams );
+    m_oPostponedDiagrams.emplace();
 
-    assert(!m_pPostponedDMLDrawings);
-    m_pPostponedDMLDrawings.reset(new std::vector<PostponedDrawing>);
+    assert(!m_oPostponedDMLDrawings);
+    m_oPostponedDMLDrawings.emplace();
 
-    assert( !m_pPostponedOLEs );
-    m_pPostponedOLEs.reset(new std::vector<PostponedOLE>);
+    assert( !m_oPostponedOLEs );
+    m_oPostponedOLEs.emplace();
 }
 
 void DocxAttributeOutput::InitCollectedRunProperties()
@@ -3313,19 +3313,19 @@ void DocxAttributeOutput::GetSdtEndBefore(const 
SdrObject* pSdrObj)
 
 void DocxAttributeOutput::WritePostponedGraphic()
 {
-    for (const auto & rPostponedDiagram : *m_pPostponedGraphic)
+    for (const auto & rPostponedDiagram : *m_oPostponedGraphic)
         FlyFrameGraphic(rPostponedDiagram.grfNode, rPostponedDiagram.size,
             nullptr, nullptr,
             rPostponedDiagram.pSdrObj);
-    m_pPostponedGraphic.reset();
+    m_oPostponedGraphic.reset();
 }
 
 void DocxAttributeOutput::WritePostponedDiagram()
 {
-    for( const auto & rPostponedDiagram : *m_pPostponedDiagrams )
+    for( const auto & rPostponedDiagram : *m_oPostponedDiagrams )
         m_rExport.SdrExporter().writeDiagram(rPostponedDiagram.object,
             *rPostponedDiagram.frame, m_anchorId++);
-    m_pPostponedDiagrams.reset();
+    m_oPostponedDiagrams.reset();
 }
 
 bool DocxAttributeOutput::FootnoteEndnoteRefTag()
@@ -6093,11 +6093,11 @@ bool DocxAttributeOutput::ExportAsActiveXControl(const 
SdrObject* pObject) const
 
 void DocxAttributeOutput::PostponeOLE( SwOLENode& rNode, const Size& rSize, 
const SwFlyFrameFormat* pFlyFrameFormat )
 {
-    if( !m_pPostponedOLEs )
+    if( !m_oPostponedOLEs )
         //cannot be postponed, try to write now
         WriteOLE( rNode, rSize, pFlyFrameFormat );
     else
-        m_pPostponedOLEs->push_back( PostponedOLE( &rNode, rSize, 
pFlyFrameFormat ) );
+        m_oPostponedOLEs->push_back( PostponedOLE( &rNode, rSize, 
pFlyFrameFormat ) );
 }
 
 /*
@@ -6105,16 +6105,16 @@ void DocxAttributeOutput::PostponeOLE( SwOLENode& 
rNode, const Size& rSize, cons
  */
 void DocxAttributeOutput::WritePostponedOLE()
 {
-    if( !m_pPostponedOLEs )
+    if( !m_oPostponedOLEs )
         return;
 
-    for( const auto & rPostponedOLE : *m_pPostponedOLEs )
+    for( const auto & rPostponedOLE : *m_oPostponedOLEs )
     {
         WriteOLE( *rPostponedOLE.object, rPostponedOLE.size, 
rPostponedOLE.frame );
     }
 
     // clear list of postponed objects
-    m_pPostponedOLEs.reset();
+    m_oPostponedOLEs.reset();
 }
 
 void DocxAttributeOutput::WriteOLE( SwOLENode& rNode, const Size& rSize, const 
SwFlyFrameFormat* pFlyFrameFormat )
@@ -6482,27 +6482,29 @@ void DocxAttributeOutput::ExportOLESurround(const 
SwFormatSurround& rWrap)
 
 void DocxAttributeOutput::WritePostponedCustomShape()
 {
-    if (!m_pPostponedCustomShape)
+    if (!m_oPostponedCustomShape)
         return;
 
-    for( const auto & rPostponedDrawing : *m_pPostponedCustomShape)
+    for( const auto & rPostponedDrawing : *m_oPostponedCustomShape)
     {
         if ( IsAlternateContentChoiceOpen() )
             m_rExport.SdrExporter().writeDMLDrawing(rPostponedDrawing.object, 
rPostponedDrawing.frame, m_anchorId++);
         else
             
m_rExport.SdrExporter().writeDMLAndVMLDrawing(rPostponedDrawing.object, 
*rPostponedDrawing.frame, m_anchorId++);
     }
-    m_pPostponedCustomShape.reset();
+    m_oPostponedCustomShape.reset();
 }
 
 void DocxAttributeOutput::WritePostponedDMLDrawing()
 {
-    if (!m_pPostponedDMLDrawings)
+    if (!m_oPostponedDMLDrawings)
         return;
 
     // Clear the list early, this method may be called recursively.
-    std::unique_ptr< std::vector<PostponedDrawing> > 
pPostponedDMLDrawings(std::move(m_pPostponedDMLDrawings));
-    std::unique_ptr< std::vector<PostponedOLE> > 
pPostponedOLEs(std::move(m_pPostponedOLEs));
+    std::optional< std::vector<PostponedDrawing> > 
pPostponedDMLDrawings(std::move(m_oPostponedDMLDrawings));
+    std::optional< std::vector<PostponedOLE> > 
pPostponedOLEs(std::move(m_oPostponedOLEs));
+    m_oPostponedDMLDrawings.reset();
+    m_oPostponedOLEs.reset();
 
     for( const auto & rPostponedDrawing : *pPostponedDMLDrawings )
     {
@@ -6513,7 +6515,7 @@ void DocxAttributeOutput::WritePostponedDMLDrawing()
             
m_rExport.SdrExporter().writeDMLAndVMLDrawing(rPostponedDrawing.object, 
*rPostponedDrawing.frame, m_anchorId++);
     }
 
-    m_pPostponedOLEs = std::move(pPostponedOLEs);
+    m_oPostponedOLEs = std::move(pPostponedOLEs);
 }
 
 void DocxAttributeOutput::WriteFlyFrame(const ww8::Frame& rFrame)
@@ -6529,7 +6531,7 @@ void DocxAttributeOutput::WriteFlyFrame(const ww8::Frame& 
rFrame)
                 const SwGrfNode *pGrfNode = pNode ? pNode->GetGrfNode() : 
nullptr;
                 if ( pGrfNode )
                 {
-                    if (!m_pPostponedGraphic)
+                    if (!m_oPostponedGraphic)
                     {
                         m_bPostponedProcessingFly = false ;
                         FlyFrameGraphic( pGrfNode, rFrame.GetLayoutSize(), 
nullptr, nullptr, pSdrObj);
@@ -6537,7 +6539,7 @@ void DocxAttributeOutput::WriteFlyFrame(const ww8::Frame& 
rFrame)
                     else // we are writing out attributes, but w:drawing 
should not be inside w:rPr,
                     {    // so write it out later
                         m_bPostponedProcessingFly = true ;
-                        
m_pPostponedGraphic->push_back(PostponedGraphic(pGrfNode, 
rFrame.GetLayoutSize(), pSdrObj));
+                        
m_oPostponedGraphic->push_back(PostponedGraphic(pGrfNode, 
rFrame.GetLayoutSize(), pSdrObj));
                     }
                 }
             }
@@ -6551,7 +6553,7 @@ void DocxAttributeOutput::WriteFlyFrame(const ww8::Frame& 
rFrame)
 
                     if (bIsDiagram)
                     {
-                        if ( !m_pPostponedDiagrams )
+                        if ( !m_oPostponedDiagrams )
                         {
                             m_bPostponedProcessingFly = false ;
                             m_rExport.SdrExporter().writeDiagram( pSdrObj, 
rFrame.GetFrameFormat(), m_anchorId++);
@@ -6559,18 +6561,18 @@ void DocxAttributeOutput::WriteFlyFrame(const 
ww8::Frame& rFrame)
                         else // we are writing out attributes, but w:drawing 
should not be inside w:rPr,
                         {    // so write it out later
                             m_bPostponedProcessingFly = true ;
-                            m_pPostponedDiagrams->push_back( PostponedDiagram( 
pSdrObj, &(rFrame.GetFrameFormat()) ));
+                            m_oPostponedDiagrams->push_back( PostponedDiagram( 
pSdrObj, &(rFrame.GetFrameFormat()) ));
                         }
                     }
                     else
                     {
-                        if (!m_pPostponedDMLDrawings)
+                        if (!m_oPostponedDMLDrawings)
                         {
                             if ( IsAlternateContentChoiceOpen() )
                             {
                                 // Do not write w:drawing inside w:drawing. 
Instead Postpone the Inner Drawing.
                                 if( m_rExport.SdrExporter().IsDrawingOpen() )
-                                    
m_pPostponedCustomShape->push_back(PostponedDrawing(pSdrObj, 
&(rFrame.GetFrameFormat())));
+                                    
m_oPostponedCustomShape->push_back(PostponedDrawing(pSdrObj, 
&(rFrame.GetFrameFormat())));
                                 else
                                     m_rExport.SdrExporter().writeDMLDrawing( 
pSdrObj, &rFrame.GetFrameFormat(), m_anchorId++);
                             }
@@ -6582,12 +6584,12 @@ void DocxAttributeOutput::WriteFlyFrame(const 
ww8::Frame& rFrame)
                         // IsAlternateContentChoiceOpen(): check is to ensure 
that only one object is getting added. Without this check, plus one object gets 
added
                         // m_bParagraphFrameOpen: check if the frame is open.
                         else if (IsAlternateContentChoiceOpen() && 
m_bParagraphFrameOpen)
-                            
m_pPostponedCustomShape->push_back(PostponedDrawing(pSdrObj, 
&(rFrame.GetFrameFormat())));
+                            
m_oPostponedCustomShape->push_back(PostponedDrawing(pSdrObj, 
&(rFrame.GetFrameFormat())));
                         else
                         {
                             // we are writing out attributes, but w:drawing 
should not be inside w:rPr, so write it out later
                             m_bPostponedProcessingFly = true ;
-                            
m_pPostponedDMLDrawings->push_back(PostponedDrawing(pSdrObj, 
&(rFrame.GetFrameFormat())));
+                            
m_oPostponedDMLDrawings->push_back(PostponedDrawing(pSdrObj, 
&(rFrame.GetFrameFormat())));
                         }
                     }
                 }
diff --git a/sw/source/filter/ww8/docxattributeoutput.hxx 
b/sw/source/filter/ww8/docxattributeoutput.hxx
index 9788ec1b4374..655a746eb2b9 100644
--- a/sw/source/filter/ww8/docxattributeoutput.hxx
+++ b/sw/source/filter/ww8/docxattributeoutput.hxx
@@ -937,14 +937,14 @@ private:
         Size size;
         const SdrObject* pSdrObj;
     };
-    std::unique_ptr< std::vector<PostponedGraphic> > m_pPostponedGraphic;
+    std::optional< std::vector<PostponedGraphic> > m_oPostponedGraphic;
     struct PostponedDiagram
     {
         PostponedDiagram( const SdrObject* o, const SwFrameFormat* frm ) : 
object( o ), frame( frm ) {};
         const SdrObject* object;
         const SwFrameFormat* frame;
     };
-    std::unique_ptr< std::vector<PostponedDiagram> > m_pPostponedDiagrams;
+    std::optional< std::vector<PostponedDiagram> > m_oPostponedDiagrams;
 
     struct PostponedDrawing
     {
@@ -952,8 +952,8 @@ private:
         const SdrObject* object;
         const SwFrameFormat* frame;
     };
-    std::unique_ptr< std::vector<PostponedDrawing> > m_pPostponedDMLDrawings;
-    std::unique_ptr< std::vector<PostponedDrawing> > m_pPostponedCustomShape;
+    std::optional< std::vector<PostponedDrawing> > m_oPostponedDMLDrawings;
+    std::optional< std::vector<PostponedDrawing> > m_oPostponedCustomShape;
 
     struct PostponedOLE
     {
@@ -962,7 +962,7 @@ private:
         const Size size;
         const SwFlyFrameFormat* frame;
     };
-    std::unique_ptr< std::vector<PostponedOLE> > m_pPostponedOLEs;
+    std::optional< std::vector<PostponedOLE> > m_oPostponedOLEs;
 
     struct PostponedMathObjects
     {

Reply via email to