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

Noel Grandin (via logerrit) logerrit at kemper.freedesktop.org
Sat Jun 19 19:27:34 UTC 2021


 sw/source/filter/ww8/wrtw8esh.cxx |   16 +++++++--------
 sw/source/filter/ww8/wrtww8.cxx   |   40 +++++++++++++++-----------------------
 sw/source/filter/ww8/wrtww8.hxx   |   14 ++++++-------
 3 files changed, 31 insertions(+), 39 deletions(-)

New commits:
commit 4668e7e7a6322cfda854ab07eabd4322c86de980
Author:     Noel Grandin <noelgrandin at gmail.com>
AuthorDate: Sat Jun 19 14:09:06 2021 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Sat Jun 19 21:24:35 2021 +0200

    use more unique_ptr in WW8Export
    
    Change-Id: I4fb6f4d42be350df5c1ccc0c87b779224000325d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117498
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/sw/source/filter/ww8/wrtw8esh.cxx b/sw/source/filter/ww8/wrtw8esh.cxx
index e65161558edb..29058a3cd691 100644
--- a/sw/source/filter/ww8/wrtw8esh.cxx
+++ b/sw/source/filter/ww8/wrtw8esh.cxx
@@ -974,9 +974,9 @@ void WW8Export::AppendFlyInFlys(const ww8::Frame& rFrameFormat,
         return ;
     PlcDrawObj *pDrwO;
     if (TXT_HDFT == m_nTextTyp)
-        pDrwO = m_pHFSdrObjs;
+        pDrwO = m_pHFSdrObjs.get();
     else
-        pDrwO = m_pSdrObjs;
+        pDrwO = m_pSdrObjs.get();
 
     if (rFrameFormat.IsInline())
     {
@@ -2212,18 +2212,18 @@ SwEscherEx::SwEscherEx(SvStream* pStrm, WW8Export& rWW8Wrt)
     CloseContainer();   // ESCHER_DggContainer
 
     sal_uInt8 i = 2;     // for header/footer and the other
-    PlcDrawObj *pSdrObjs = rWrt.m_pHFSdrObjs;
-    pTextBxs = rWrt.m_pHFTextBxs;
+    PlcDrawObj *pSdrObjs = rWrt.m_pHFSdrObjs.get();
+    pTextBxs = rWrt.m_pHFTextBxs.get();
 
     // if no header/footer -> skip over
     if (!pSdrObjs->size())
     {
         --i;
-        pSdrObjs = rWrt.m_pSdrObjs;
-        pTextBxs = rWrt.m_pTextBxs;
+        pSdrObjs = rWrt.m_pSdrObjs.get();
+        pTextBxs = rWrt.m_pTextBxs.get();
     }
 
-    for( ; i--; pSdrObjs = rWrt.m_pSdrObjs, pTextBxs = rWrt.m_pTextBxs )
+    for( ; i--; pSdrObjs = rWrt.m_pSdrObjs.get(), pTextBxs = rWrt.m_pTextBxs.get() )
     {
         // "dummy char" (or any Count ?) - why? Only Microsoft knows it.
         GetStream().WriteChar( i );
@@ -2232,7 +2232,7 @@ SwEscherEx::SwEscherEx(SvStream* pStrm, WW8Export& rWW8Wrt)
 
         EnterGroup();
 
-        sal_uLong nSecondShapeId = pSdrObjs == rWrt.m_pSdrObjs ? GenerateShapeId() : 0;
+        sal_uLong nSecondShapeId = pSdrObjs == rWrt.m_pSdrObjs.get() ? GenerateShapeId() : 0;
 
         // write now all Writer-/DrawObjects
         DrawObjPointerVector aSorted;
diff --git a/sw/source/filter/ww8/wrtww8.cxx b/sw/source/filter/ww8/wrtww8.cxx
index bd6a633bb670..9f2daa129d53 100644
--- a/sw/source/filter/ww8/wrtww8.cxx
+++ b/sw/source/filter/ww8/wrtww8.cxx
@@ -1657,7 +1657,7 @@ sal_uInt16 WW8Export::AddRedlineAuthor( std::size_t nId )
 {
     if( !m_pRedlAuthors )
     {
-        m_pRedlAuthors = new WW8_WrtRedlineAuthor;
+        m_pRedlAuthors.reset(new WW8_WrtRedlineAuthor);
         m_pRedlAuthors->AddName("Unknown");
     }
     return m_pRedlAuthors->AddName( SW_MOD()->GetRedlineAuthor( nId ) );
@@ -3500,15 +3500,15 @@ ErrCode WW8Export::ExportDocument_Impl()
 
     pFootnote.reset(new WW8_WrPlcFootnoteEdn( TXT_FTN ));                      // Footnotes
     pEdn.reset(new WW8_WrPlcFootnoteEdn( TXT_EDN ));                      // Endnotes
-    m_pAtn = new WW8_WrPlcAnnotations;                                 // PostIts
+    m_pAtn.reset(new WW8_WrPlcAnnotations);                                 // PostIts
     m_pFactoids.reset(new WW8_WrtFactoids); // Smart tags.
-    m_pTextBxs = new WW8_WrPlcTextBoxes( TXT_TXTBOX );
-    m_pHFTextBxs = new WW8_WrPlcTextBoxes( TXT_HFTXTBOX );
+    m_pTextBxs.reset(new WW8_WrPlcTextBoxes( TXT_TXTBOX ));
+    m_pHFTextBxs.reset(new WW8_WrPlcTextBoxes( TXT_HFTXTBOX ));
 
-    m_pSdrObjs = new MainTextPlcDrawObj;   // Draw-/Fly-Objects for main text
-    m_pHFSdrObjs = new HdFtPlcDrawObj;    // Draw-/Fly-Objects for header/footer
+    m_pSdrObjs.reset(new MainTextPlcDrawObj);   // Draw-/Fly-Objects for main text
+    m_pHFSdrObjs.reset(new HdFtPlcDrawObj);    // Draw-/Fly-Objects for header/footer
 
-    m_pBkmks = new WW8_WrtBookmarks;                          // Bookmarks
+    m_pBkmks.reset(new WW8_WrtBookmarks);                          // Bookmarks
     GetWriter().CreateBookmarkTable();
 
     m_pPapPlc.reset(new WW8_WrPlcPn( *this, PAP, pFib->m_fcMin ));
@@ -3526,7 +3526,7 @@ ErrCode WW8Export::ExportDocument_Impl()
     m_pMagicTable.reset(new WW8_WrMagicTable);
 
     m_pGrf.reset(new SwWW8WrGrf( *this ));
-    m_pPiece = new WW8_WrPct( pFib->m_fcMin );
+    m_pPiece.reset(new WW8_WrPct( pFib->m_fcMin ));
     pDop.reset(new WW8Dop);
 
     pDop->fRevMarking = bool( RedlineFlags::On & m_nOrigRedlineFlags );
@@ -3613,16 +3613,16 @@ ErrCode WW8Export::ExportDocument_Impl()
     m_pPapPlc.reset();
     pSepx.reset();
 
-    delete m_pRedlAuthors;
-    delete m_pSdrObjs;
-    delete m_pHFSdrObjs;
-    delete m_pTextBxs;
-    delete m_pHFTextBxs;
-    delete m_pAtn;
+    m_pRedlAuthors.reset();
+    m_pSdrObjs.reset();
+    m_pHFSdrObjs.reset();
+    m_pTextBxs.reset();
+    m_pHFTextBxs.reset();
+    m_pAtn.reset();
     pEdn.reset();
     pFootnote.reset();
-    delete m_pBkmks;
-    delete m_pPiece;
+    m_pBkmks.reset();
+    m_pPiece.reset();
     pDop.reset();
     pFib.reset();
     GetWriter().SetStream( nullptr );
@@ -3847,10 +3847,7 @@ ErrCode SwWW8Writer::Write( SwPaM& rPaM, SfxMedium& rMed,
 MSWordExportBase::MSWordExportBase( SwDoc& rDocument, std::shared_ptr<SwUnoCursor> & pCurrentPam, SwPaM* pOriginalPam )
     : m_aMainStg(sMainStream)
     , m_pISet(nullptr)
-    , m_pPiece(nullptr)
     , m_pTopNodeOfHdFtPage(nullptr)
-    , m_pBkmks(nullptr)
-    , m_pRedlAuthors(nullptr)
     , m_pTableInfo(std::make_shared<ww8::WW8TableInfo>())
     , m_nCharFormatStart(0)
     , m_nFormatCollStart(0)
@@ -3863,17 +3860,12 @@ MSWordExportBase::MSWordExportBase( SwDoc& rDocument, std::shared_ptr<SwUnoCurso
     , m_pCurrentPageDesc(nullptr)
     , m_bFirstTOCNodeWithSection(false)
     , m_pChpIter(nullptr)
-    , m_pAtn(nullptr)
-    , m_pTextBxs(nullptr)
-    , m_pHFTextBxs(nullptr)
     , m_pParentFrame(nullptr)
     , m_pFlyOffset(nullptr)
     , m_eNewAnchorType(RndStdIds::FLY_AS_CHAR)
     , m_pStyAttr(nullptr)
     , m_pOutFormatNode(nullptr)
     , m_pCurrentStyle(nullptr)
-    , m_pSdrObjs(nullptr)
-    , m_pHFSdrObjs(nullptr)
     , m_pEscher(nullptr)
     , m_nTextTyp(0)
     , m_bStyDef(false)
diff --git a/sw/source/filter/ww8/wrtww8.hxx b/sw/source/filter/ww8/wrtww8.hxx
index cad77799abe5..2cf9a82df7a0 100644
--- a/sw/source/filter/ww8/wrtww8.hxx
+++ b/sw/source/filter/ww8/wrtww8.hxx
@@ -455,7 +455,7 @@ public:
     std::vector<const SwTOXType*> m_aTOXArr;
     const SfxItemSet* m_pISet;    // for double attributes
     const SwFrameFormat* m_pFirstPageFormat = nullptr;
-    WW8_WrPct*  m_pPiece;         // Pointer to Piece-Table
+    std::unique_ptr<WW8_WrPct>  m_pPiece;         // Pointer to Piece-Table
     std::unique_ptr<SwNumRuleTable> m_pUsedNumTable;  // all used NumRules
     /// overriding numdef index -> (existing numdef index, abstractnumdef index)
     std::map<size_t, std::pair<size_t, size_t>> m_OverridingNums;
@@ -468,8 +468,8 @@ public:
 
     const SwTextNode *m_pTopNodeOfHdFtPage; ///< Top node of host page when in hd/ft
     std::stack< sal_Int32 > m_aCurrentCharPropStarts; ///< To remember the position in a run.
-    WW8_WrtBookmarks* m_pBkmks;
-    WW8_WrtRedlineAuthor* m_pRedlAuthors;
+    std::unique_ptr<WW8_WrtBookmarks> m_pBkmks;
+    std::unique_ptr<WW8_WrtRedlineAuthor> m_pRedlAuthors;
     std::shared_ptr<NfKeywordTable> m_pKeyMap;
     std::unique_ptr<SvxMSExportOLEObjects> m_pOLEExp;
     std::unique_ptr<SwMSConvertControls> m_pOCXExp;
@@ -499,9 +499,9 @@ public:
     std::unique_ptr<WW8_WrPlcPn> m_pChpPlc;
     MSWordAttrIter* m_pChpIter;
     std::unique_ptr<MSWordStyles> m_pStyles;
-    WW8_WrPlcAnnotations* m_pAtn;
+    std::unique_ptr<WW8_WrPlcAnnotations> m_pAtn;
     std::unique_ptr<WW8_WrtFactoids> m_pFactoids;
-    WW8_WrPlcTextBoxes *m_pTextBxs, *m_pHFTextBxs;
+    std::unique_ptr<WW8_WrPlcTextBoxes> m_pTextBxs, m_pHFTextBxs;
 
     struct LinkedTextboxInfo        //help analyze textbox flow links
     {
@@ -537,8 +537,8 @@ public:
     const sw::BroadcastingModify* m_pOutFormatNode;    // write Format or Node
     const SwFormat *m_pCurrentStyle;     // iff bStyDef=true, then this store the current style
 
-    MainTextPlcDrawObj *m_pSdrObjs;   // Draw-/Fly-Objects
-    HdFtPlcDrawObj *m_pHFSdrObjs;     // Draw-/Fly-Objects in header or footer
+    std::unique_ptr<MainTextPlcDrawObj> m_pSdrObjs;   // Draw-/Fly-Objects
+    std::unique_ptr<HdFtPlcDrawObj> m_pHFSdrObjs;     // Draw-/Fly-Objects in header or footer
 
     SwEscherEx* m_pEscher;            // escher export class
     // #i43447# - removed


More information about the Libreoffice-commits mailing list