editeng/source/rtf/svxrtf.cxx | 25 ++++++++++++++++++------- include/editeng/svxrtf.hxx | 3 +++ 2 files changed, 21 insertions(+), 7 deletions(-)
New commits: commit b30839cecd25b9f6f56fcf4b3d3e90ab23a3d0b7 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Thu Jun 3 10:02:59 2021 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Thu Jun 3 14:28:50 2021 +0200 use std::make_unique instead of new Change-Id: I267b82dd573fc8bd30e1c5d47e9b1f2e98c2b412 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116645 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/editeng/source/rtf/svxrtf.cxx b/editeng/source/rtf/svxrtf.cxx index 43c6a8e6f8e5..9d5f3abe84ec 100644 --- a/editeng/source/rtf/svxrtf.cxx +++ b/editeng/source/rtf/svxrtf.cxx @@ -609,23 +609,34 @@ const vcl::Font& SvxRTFParser::GetFont( sal_uInt16 nId ) return *pDfltFont; } +std::unique_ptr<SvxRTFItemStackType> SvxRTFItemStackType::createSvxRTFItemStackType( + SfxItemPool& rPool, const sal_uInt16* pWhichRange, const EditPosition& rEditPosition) +{ + struct MakeUniqueEnabler : public SvxRTFItemStackType + { + MakeUniqueEnabler(SfxItemPool& rPool, const sal_uInt16* pWhichRange, const EditPosition& rEditPosition) + : SvxRTFItemStackType(rPool, pWhichRange, rEditPosition) + { + } + }; + return std::make_unique<MakeUniqueEnabler>(rPool, pWhichRange, rEditPosition); +} + SvxRTFItemStackType* SvxRTFParser::GetAttrSet_() { SvxRTFItemStackType* pCurrent = aAttrStack.empty() ? nullptr : aAttrStack.back().get(); - std::unique_ptr<SvxRTFItemStackType> pNew; + std::unique_ptr<SvxRTFItemStackType> xNew; if( pCurrent ) - pNew.reset(new SvxRTFItemStackType( *pCurrent, *mxInsertPosition, false/*bCopyAttr*/ )); + xNew = std::make_unique<SvxRTFItemStackType>(*pCurrent, *mxInsertPosition, false/*bCopyAttr*/); else - pNew.reset(new SvxRTFItemStackType( *pAttrPool, aWhichMap.data(), - *mxInsertPosition )); - pNew->SetRTFDefaults( GetRTFDefaults() ); + xNew = SvxRTFItemStackType::createSvxRTFItemStackType(*pAttrPool, aWhichMap.data(), *mxInsertPosition); + xNew->SetRTFDefaults( GetRTFDefaults() ); - aAttrStack.push_back( std::move(pNew) ); + aAttrStack.push_back( std::move(xNew) ); bNewGroup = false; return aAttrStack.back().get(); } - void SvxRTFParser::ClearStyleAttr_( SvxRTFItemStackType& rStkType ) { // check attributes to the attributes of the stylesheet or to diff --git a/include/editeng/svxrtf.hxx b/include/editeng/svxrtf.hxx index d19c542885bf..d322b1823e2b 100644 --- a/include/editeng/svxrtf.hxx +++ b/include/editeng/svxrtf.hxx @@ -304,6 +304,9 @@ class SvxRTFItemStackType SvxRTFItemStackType( SfxItemPool&, const sal_uInt16* pWhichRange, const EditPosition& ); + static std::unique_ptr<SvxRTFItemStackType> createSvxRTFItemStackType( + SfxItemPool&, const sal_uInt16* pWhichRange, const EditPosition&); + void Add(std::unique_ptr<SvxRTFItemStackType>); void Compress( const SvxRTFParser& ); void DropChildList(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits