sw/source/filter/ww8/wrtw8num.cxx | 10 ++++------ sw/source/filter/ww8/ww8par.hxx | 2 +- sw/source/filter/ww8/ww8par2.cxx | 14 ++++---------- sw/source/filter/ww8/ww8par6.cxx | 10 ++++------ sw/source/uibase/wrtsh/wrtsh2.cxx | 26 +++++++++++++------------- 5 files changed, 26 insertions(+), 36 deletions(-)
New commits: commit 11f85d828a16b1beee5c476bd4d8d21c3e450592 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Mon Jan 14 10:43:10 2019 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Tue Jan 15 06:57:58 2019 +0100 use unique_ptr in SwWW8ImplReader::ConstructApo Change-Id: I104168fbbd04f81d500bc9d63d4328aee0a11f24 Reviewed-on: https://gerrit.libreoffice.org/66318 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sw/source/filter/ww8/ww8par.hxx b/sw/source/filter/ww8/ww8par.hxx index 4a91dc1da609..33b0a9349141 100644 --- a/sw/source/filter/ww8/ww8par.hxx +++ b/sw/source/filter/ww8/ww8par.hxx @@ -1493,7 +1493,7 @@ private: bool IsListOrDropcap() { return (!m_xCurrentItemSet || m_bDropCap); }; //Apo == Absolutely Positioned Object, MSWord's old-style frames - WW8FlyPara *ConstructApo(const ApoTestResults &rApo, + std::unique_ptr<WW8FlyPara> ConstructApo(const ApoTestResults &rApo, const WW8_TablePos *pTabPos); bool StartApo(const ApoTestResults &rApo, const WW8_TablePos *pTabPos); void StopApo(); diff --git a/sw/source/filter/ww8/ww8par2.cxx b/sw/source/filter/ww8/ww8par2.cxx index 04f896ea268f..f5224bec80a1 100644 --- a/sw/source/filter/ww8/ww8par2.cxx +++ b/sw/source/filter/ww8/ww8par2.cxx @@ -460,9 +460,7 @@ ApoTestResults SwWW8ImplReader::TestApo(int nCellLevel, bool bTableRowEnd, bool bNowApo = aRet.HasFrame() || pTopLevelTable; if (bNowApo) { - if (WW8FlyPara *pTest = ConstructApo(aRet, pTabPos)) - delete pTest; - else + if (!ConstructApo(aRet, pTabPos)) bNowApo = false; } @@ -2080,10 +2078,7 @@ WW8TabDesc::WW8TabDesc(SwWW8ImplReader* pIoClass, WW8_CP nStartCp) : if (aApo.mbStartApo) { //if there really is a fly here, and not a "null" fly then break. - WW8FlyPara *pNewFly = m_pIo->ConstructApo(aApo, pTabPos); - if (pNewFly) - delete pNewFly; - else + if (m_pIo->ConstructApo(aApo, pTabPos)) break; } @@ -3408,7 +3403,7 @@ bool SwWW8ImplReader::StartTable(WW8_CP nStartCp) // #i33818# - determine absolute position object attributes, // if possible. It's needed for nested tables. - WW8FlyPara* pTableWFlyPara( nullptr ); + std::unique_ptr<WW8FlyPara> pTableWFlyPara; WW8SwFlyPara* pTableSFlyPara( nullptr ); // #i45301# - anchor nested table inside Writer fly frame // only at-character, if absolute position object attributes are available. @@ -3485,7 +3480,7 @@ bool SwWW8ImplReader::StartTable(WW8_CP nStartCp) // if existing, and apply them to the created Writer fly frame. if ( pTableWFlyPara && pTableSFlyPara ) { - WW8FlySet aFlySet( *this, pTableWFlyPara, pTableSFlyPara, false ); + WW8FlySet aFlySet( *this, pTableWFlyPara.get(), pTableSFlyPara, false ); SwFormatAnchor aAnchor( RndStdIds::FLY_AT_CHAR ); aAnchor.SetAnchor( m_xTableDesc->m_pParentPos ); aFlySet.Put( aAnchor ); @@ -3510,7 +3505,6 @@ bool SwWW8ImplReader::StartTable(WW8_CP nStartCp) PopTableDesc(); // #i33818# - delete pTableWFlyPara; delete pTableSFlyPara; return m_xTableDesc != nullptr; diff --git a/sw/source/filter/ww8/ww8par6.cxx b/sw/source/filter/ww8/ww8par6.cxx index a178f5c788d0..2b12c2619a1b 100644 --- a/sw/source/filter/ww8/ww8par6.cxx +++ b/sw/source/filter/ww8/ww8par6.cxx @@ -2364,14 +2364,13 @@ SwTwips SwWW8ImplReader::MoveOutsideFly(SwFrameFormat *pFlyFormat, return nRetWidth; } -WW8FlyPara *SwWW8ImplReader::ConstructApo(const ApoTestResults &rApo, +std::unique_ptr<WW8FlyPara> SwWW8ImplReader::ConstructApo(const ApoTestResults &rApo, const WW8_TablePos *pTabPos) { - WW8FlyPara *pRet = nullptr; OSL_ENSURE(rApo.HasFrame() || pTabPos, "If no frame found, *MUST* be in a table"); - pRet = new WW8FlyPara(m_bVer67, rApo.mpStyleApo); + std::unique_ptr<WW8FlyPara> pRet(new WW8FlyPara(m_bVer67, rApo.mpStyleApo)); // find APO parameter and test for bGrafApo if (rApo.HasFrame()) @@ -2381,8 +2380,7 @@ WW8FlyPara *SwWW8ImplReader::ConstructApo(const ApoTestResults &rApo, if (pRet->IsEmpty()) { - delete pRet; - pRet = nullptr; + pRet.reset(); } return pRet; } @@ -2418,7 +2416,7 @@ bool SwWW8ImplReader::IsDropCap() bool SwWW8ImplReader::StartApo(const ApoTestResults &rApo, const WW8_TablePos *pTabPos) { - m_xWFlyPara.reset(ConstructApo(rApo, pTabPos)); + m_xWFlyPara = ConstructApo(rApo, pTabPos); if (!m_xWFlyPara) return false; commit 9c6cd998aeb7061f38ec1334e160d002008dd66b Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Mon Jan 14 10:37:09 2019 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Tue Jan 15 06:57:43 2019 +0100 use unique_ptr in sw Change-Id: I8c472a7d363eb308e9ec78aadd7f1f20c824447b Reviewed-on: https://gerrit.libreoffice.org/66317 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sw/source/filter/ww8/wrtw8num.cxx b/sw/source/filter/ww8/wrtw8num.cxx index b0b0cde57768..3fdd90134014 100644 --- a/sw/source/filter/ww8/wrtw8num.cxx +++ b/sw/source/filter/ww8/wrtw8num.cxx @@ -480,7 +480,7 @@ void MSWordExportBase::AbstractNumberingDefinitions() } // Attributes of the numbering - wwFont *pPseudoFont = nullptr; + std::unique_ptr<wwFont> pPseudoFont; const SfxItemSet* pOutSet = nullptr; // cbGrpprlChpx @@ -500,8 +500,8 @@ void MSWordExportBase::AbstractNumberingDefinitions() if ( sFontName.isEmpty() ) sFontName = pBulletFont->GetFamilyName(); - pPseudoFont = new wwFont( sFontName, pBulletFont->GetPitch(), - eFamily, eChrSet); + pPseudoFont.reset(new wwFont( sFontName, pBulletFont->GetPitch(), + eFamily, eChrSet)); } else pOutSet = &rFormat.GetCharFormat()->GetAttrSet(); @@ -531,12 +531,10 @@ void MSWordExportBase::AbstractNumberingDefinitions() rFormat.GetNumAdjust(), aNumLvlPos, nFollow, - pPseudoFont, pOutSet, + pPseudoFont.get(), pOutSet, nIndentAt, nFirstLineIndex, nListTabPos, sNumStr, rFormat.GetNumberingType()==SVX_NUM_BITMAP ? rFormat.GetBrush():nullptr); - - delete pPseudoFont; } AttrOutput().EndAbstractNumbering(); } diff --git a/sw/source/uibase/wrtsh/wrtsh2.cxx b/sw/source/uibase/wrtsh/wrtsh2.cxx index bff262badbf3..5fccd756bae9 100644 --- a/sw/source/uibase/wrtsh/wrtsh2.cxx +++ b/sw/source/uibase/wrtsh/wrtsh2.cxx @@ -134,14 +134,17 @@ void SwWrtShell::Insert(SwField const &rField) void SwWrtShell::UpdateInputFields( SwInputFieldList* pLst ) { // Go through the list of fields and updating - SwInputFieldList* pTmp = pLst; - if( !pTmp ) - pTmp = new SwInputFieldList( this ); + std::unique_ptr<SwInputFieldList> pTmp; + if (!pLst) + { + pTmp.reset(new SwInputFieldList( this )); + pLst = pTmp.get(); + } - const size_t nCnt = pTmp->Count(); + const size_t nCnt = pLst->Count(); if(nCnt) { - pTmp->PushCursor(); + pLst->PushCursor(); bool bCancel = false; @@ -153,7 +156,7 @@ void SwWrtShell::UpdateInputFields( SwInputFieldList* pLst ) { for (size_t i = 0; i < nCnt; i++) { - if (pField == pTmp->GetField(i)) + if (pField == pLst->GetField(i)) { nIndex = i; break; @@ -165,8 +168,8 @@ void SwWrtShell::UpdateInputFields( SwInputFieldList* pLst ) { bool bPrev = nIndex > 0; bool bNext = nIndex < nCnt - 1; - pTmp->GotoFieldPos(nIndex); - pField = pTmp->GetField(nIndex); + pLst->GotoFieldPos(nIndex); + pField = pLst->GetField(nIndex); if (pField->GetTyp()->Which() == SwFieldIds::Dropdown) { bCancel = StartDropDownFieldDlg(pField, bPrev, bNext, GetView().GetFrameWeld(), &ePressedButton); @@ -177,7 +180,7 @@ void SwWrtShell::UpdateInputFields( SwInputFieldList* pLst ) if (!bCancel) { // Otherwise update error at multi-selection: - pTmp->GetField(nIndex)->GetTyp()->UpdateFields(); + pLst->GetField(nIndex)->GetTyp()->UpdateFields(); if (ePressedButton == FieldDialogPressedButton::Previous && nIndex > 0) nIndex--; @@ -188,11 +191,8 @@ void SwWrtShell::UpdateInputFields( SwInputFieldList* pLst ) } } - pTmp->PopCursor(); + pLst->PopCursor(); } - - if( !pLst ) - delete pTmp; } // Listener class: will close InputField dialog if input field(s) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits