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@collabora.co.uk>
diff --git a/sw/source/filter/ww8/wrtw8esh.cxx b/sw/source/filter/ww8/wrtw8esh.cxx
index e651615..29058a3 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 bd6a633bb..9f2daa1 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 cad7779..2cf9a82 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