ucb/source/ucp/file/filtask.cxx | 56 ++++++---------------------------------- ucb/source/ucp/file/filtask.hxx | 7 ++--- vcl/source/edit/textdat2.hxx | 6 ++-- vcl/source/edit/textdata.cxx | 2 - vcl/source/edit/texteng.cxx | 3 -- vcl/source/edit/textundo.cxx | 1 6 files changed, 15 insertions(+), 60 deletions(-)
New commits: commit 056ee671e2d3d15eb1dd9231f4628298cbbd0ede Author: Noel Grandin <[email protected]> Date: Mon Jan 29 09:00:05 2018 +0200 loplugin:useuniqueptr in TEParaPortions Change-Id: I530c432176ea6bd338387d2f8855f9f477e8ca75 Reviewed-on: https://gerrit.libreoffice.org/49093 Tested-by: Jenkins <[email protected]> Reviewed-by: Noel Grandin <[email protected]> diff --git a/vcl/source/edit/textdat2.hxx b/vcl/source/edit/textdat2.hxx index cef44ae687b2..27b110b6e322 100644 --- a/vcl/source/edit/textdat2.hxx +++ b/vcl/source/edit/textdat2.hxx @@ -212,15 +212,15 @@ public: class TEParaPortions { private: - std::vector<TEParaPortion*> mvData; + std::vector<std::unique_ptr<TEParaPortion>> mvData; public: TEParaPortions() : mvData() {} ~TEParaPortions(); sal_uInt32 Count() const { return static_cast<sal_uInt32>(mvData.size()); } - TEParaPortion* GetObject( sal_uInt32 nIndex ) { return mvData[nIndex]; } - void Insert( TEParaPortion* pObject, sal_uInt32 nPos ) { mvData.insert( mvData.begin()+nPos, pObject ); } + TEParaPortion* GetObject( sal_uInt32 nIndex ) { return mvData[nIndex].get(); } + void Insert( TEParaPortion* pObject, sal_uInt32 nPos ) { mvData.emplace( mvData.begin()+nPos, pObject ); } void Remove( sal_uInt32 nPos ) { mvData.erase( mvData.begin()+nPos ); } }; diff --git a/vcl/source/edit/textdata.cxx b/vcl/source/edit/textdata.cxx index 72e8b3c309a8..bc8302174cab 100644 --- a/vcl/source/edit/textdata.cxx +++ b/vcl/source/edit/textdata.cxx @@ -267,8 +267,6 @@ void TEParaPortion::CorrectValuesBehindLastFormattedLine( sal_uInt16 nLastFormat TEParaPortions::~TEParaPortions() { - for (auto const& elem : mvData) - delete elem; } IdleFormatter::IdleFormatter() diff --git a/vcl/source/edit/texteng.cxx b/vcl/source/edit/texteng.cxx index 6baa37e08d0a..06d96b716fe5 100644 --- a/vcl/source/edit/texteng.cxx +++ b/vcl/source/edit/texteng.cxx @@ -523,7 +523,6 @@ TextPaM TextEngine::ImpConnectParagraphs( sal_uInt32 nLeft, sal_uInt32 nRight ) pLeftPortion->MarkSelectionInvalid( aPaM.GetIndex() ); mpTEParaPortions->Remove( nRight ); - delete pRightPortion; // the right Node is deleted by EditDoc::ConnectParagraphs() return aPaM; @@ -601,7 +600,6 @@ TextPaM TextEngine::ImpDeleteText( const TextSelection& rSel ) void TextEngine::ImpRemoveParagraph( sal_uInt32 nPara ) { TextNode* pNode = mpDoc->GetNodes()[ nPara ]; - std::unique_ptr<TEParaPortion> xPortion(mpTEParaPortions->GetObject( nPara )); // the Node is handled by Undo and is deleted if appropriate mpDoc->GetNodes().erase( mpDoc->GetNodes().begin() + nPara ); @@ -611,7 +609,6 @@ void TextEngine::ImpRemoveParagraph( sal_uInt32 nPara ) delete pNode; mpTEParaPortions->Remove( nPara ); - xPortion.reset(); ImpParagraphRemoved( nPara ); } diff --git a/vcl/source/edit/textundo.cxx b/vcl/source/edit/textundo.cxx index 5c58bde20b8a..15cea12cba2e 100644 --- a/vcl/source/edit/textundo.cxx +++ b/vcl/source/edit/textundo.cxx @@ -165,7 +165,6 @@ void TextUndoDelPara::Redo() // pNode is not valid anymore in case an Undo joined paragraphs mpNode = GetDoc()->GetNodes()[ mnPara ]; - delete GetTEParaPortions()->GetObject( mnPara ); GetTEParaPortions()->Remove( mnPara ); // do not delete Node because of Undo! commit 904263cdd05d86756da68f0b843e876747dcf3a2 Author: Noel Grandin <[email protected]> Date: Tue Jan 23 16:21:13 2018 +0200 loplugin:useuniqueptr in TaskManager::UnqPathData Change-Id: I6b6e7b59113fcae8dfafa4ed8586b87d2c82489e Reviewed-on: https://gerrit.libreoffice.org/49092 Tested-by: Jenkins <[email protected]> Reviewed-by: Noel Grandin <[email protected]> diff --git a/ucb/source/ucp/file/filtask.cxx b/ucb/source/ucp/file/filtask.cxx index 55344c00edd0..7cca2f8abf16 100644 --- a/ucb/source/ucp/file/filtask.cxx +++ b/ucb/source/ucp/file/filtask.cxx @@ -71,46 +71,13 @@ using namespace com::sun::star::ucb; #define THROW_WHERE "" #endif -TaskManager::UnqPathData::UnqPathData() - : properties( nullptr ), - notifier( nullptr ), - xS( nullptr ), - xC( nullptr ), - xA( nullptr ) -{ - // empty -} - - -TaskManager::UnqPathData::UnqPathData( const UnqPathData& a ) - : properties( a.properties ), - notifier( a.notifier ), - xS( a.xS ), - xC( a.xC ), - xA( a.xA ) -{ -} +TaskManager::UnqPathData::UnqPathData() = default; +TaskManager::UnqPathData::UnqPathData(TaskManager::UnqPathData&&) = default; -TaskManager::UnqPathData& TaskManager::UnqPathData::operator=( UnqPathData& a ) -{ - properties = a.properties; - notifier = a.notifier; - xS = a.xS; - xC = a.xC; - xA = a.xA; - a.properties = nullptr; - a.notifier = nullptr; - a.xS = nullptr; - a.xC = nullptr; - a.xA = nullptr; - return *this; -} TaskManager::UnqPathData::~UnqPathData() { - delete properties; - delete notifier; } TaskManager::MyProperty::MyProperty( const OUString& thePropertyName ) @@ -533,10 +500,10 @@ TaskManager::registerNotifier( const OUString& aUnqPath, Notifier* pNotifier ) osl::MutexGuard aGuard( m_aMutex ); ContentMap::iterator it = - m_aContent.emplace( aUnqPath,UnqPathData() ).first; + m_aContent.emplace( aUnqPath, UnqPathData() ).first; if( ! it->second.notifier ) - it->second.notifier = new NotifierList; + it->second.notifier.reset( new NotifierList ); std::vector< Notifier* >& nlist = *( it->second.notifier ); @@ -2245,7 +2212,7 @@ void TaskManager::load( const ContentMap::iterator& it, bool create ) { if( ! it->second.properties ) - it->second.properties = new PropertySet; + it->second.properties.reset( new PropertySet ); if( ( ! it->second.xS.is() || ! it->second.xC.is() || @@ -2772,14 +2739,11 @@ TaskManager::getContentExchangedEventListeners( const OUString& aOldPrefix, aNewName,UnqPathData() ).first; // copy Ownership also - delete itnew->second.properties; - itnew->second.properties = itold->second.properties; - itold->second.properties = nullptr; + itnew->second.properties = std::move(itold->second.properties); // copy existing list - std::vector< Notifier* >* copyList = itnew->second.notifier; - itnew->second.notifier = itold->second.notifier; - itold->second.notifier = nullptr; + std::unique_ptr<std::vector< Notifier* >> copyList = std::move(itnew->second.notifier); + itnew->second.notifier = std::move(itold->second.notifier); m_aContent.erase( itold ); @@ -2805,7 +2769,6 @@ TaskManager::getContentExchangedEventListeners( const OUString& aOldPrefix, ++copyIt; } } - delete copyList; } } } @@ -2903,8 +2866,7 @@ TaskManager::erasePersistentSet( const OUString& aUnqPath, it->second.xC = nullptr; it->second.xA = nullptr; - delete it->second.properties; - it->second.properties = nullptr; + it->second.properties.reset(); } } diff --git a/ucb/source/ucp/file/filtask.hxx b/ucb/source/ucp/file/filtask.hxx index 0cb948e9a420..966a0cdbcbbc 100644 --- a/ucb/source/ucp/file/filtask.hxx +++ b/ucb/source/ucp/file/filtask.hxx @@ -230,12 +230,11 @@ namespace fileaccess { public: UnqPathData(); + UnqPathData(UnqPathData&&); ~UnqPathData(); - UnqPathData( const UnqPathData& ); - UnqPathData& operator=( UnqPathData& ); - PropertySet* properties; - NotifierList* notifier; + std::unique_ptr<PropertySet> properties; + std::unique_ptr<NotifierList> notifier; // Three views on the PersistentPropertySet css::uno::Reference< css::ucb::XPersistentPropertySet > xS; _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
