diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-03-15 11:20:14 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-03-15 11:46:52 +0100 |
commit | f725b130e5466a1c4a3a1e070c0eb3548a9a6842 (patch) | |
tree | 4a16438f3a3bb77d3eb4bf287a19ef3e01b1804e | |
parent | 16b7ec7b2e4cc4f0962513c646cb46589ff78c12 (diff) |
loplugin:useuniqueptr in ScBroadcastAreaSlotMachine
Change-Id: Ib1f54ad7eeae5ea66ad7f8f789e86cd89c4b32d4
Reviewed-on: https://gerrit.libreoffice.org/51316
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r-- | sc/source/core/data/bcaslot.cxx | 24 | ||||
-rw-r--r-- | sc/source/core/inc/bcaslot.hxx | 4 |
2 files changed, 11 insertions, 17 deletions
diff --git a/sc/source/core/data/bcaslot.cxx b/sc/source/core/data/bcaslot.cxx index 9e1360658e9b..8ee5a1e6587a 100644 --- a/sc/source/core/data/bcaslot.cxx +++ b/sc/source/core/data/bcaslot.cxx @@ -659,12 +659,8 @@ ScBroadcastAreaSlotMachine::ScBroadcastAreaSlotMachine( ScBroadcastAreaSlotMachine::~ScBroadcastAreaSlotMachine() { - for (TableSlotsMap::iterator iTab( aTableSlotsMap.begin()); - iTab != aTableSlotsMap.end(); ++iTab) - { - delete (*iTab).second; - } - delete pBCAlways; + aTableSlotsMap.clear(); + pBCAlways.reset(); // Areas to-be-erased still present is a serious error in handling, but at // this stage there's nothing we can do anymore. SAL_WARN_IF( !maAreasToBeErased.empty(), "sc.core", "ScBroadcastAreaSlotMachine::dtor: maAreasToBeErased not empty"); @@ -727,7 +723,7 @@ void ScBroadcastAreaSlotMachine::StartListeningArea( if ( rRange == BCA_LISTEN_ALWAYS ) { if ( !pBCAlways ) - pBCAlways = new SvtBroadcaster; + pBCAlways.reset( new SvtBroadcaster ); pListener->StartListening( *pBCAlways ); } else @@ -743,7 +739,7 @@ void ScBroadcastAreaSlotMachine::StartListeningArea( { TableSlotsMap::iterator iTab( aTableSlotsMap.find( nTab)); if (iTab == aTableSlotsMap.end()) - iTab = aTableSlotsMap.emplace(nTab, new TableSlots).first; + iTab = aTableSlotsMap.emplace(nTab, std::unique_ptr<TableSlots>(new TableSlots)).first; ScBroadcastAreaSlot** ppSlots = (*iTab).second->getSlots(); SCSIZE nStart, nEnd, nRowBreak; ComputeAreaPoints( rRange, nStart, nEnd, nRowBreak ); @@ -781,8 +777,7 @@ void ScBroadcastAreaSlotMachine::EndListeningArea( pListener->EndListening( *pBCAlways); if (!pBCAlways->HasListeners()) { - delete pBCAlways; - pBCAlways = nullptr; + pBCAlways.reset(); } } } @@ -990,14 +985,13 @@ void ScBroadcastAreaSlotMachine::UpdateBroadcastAreas( // Remove sheets, if any, iDel or/and iTab may as well point to end(). while (iDel != iTab) { - delete (*iDel).second; aTableSlotsMap.erase( iDel++); } // shift remaining down while (iTab != aTableSlotsMap.end()) { SCTAB nTab = (*iTab).first + nDz; - aTableSlotsMap[nTab] = (*iTab).second; + aTableSlotsMap[nTab] = std::move((*iTab).second); aTableSlotsMap.erase( iTab++); } } @@ -1014,14 +1008,14 @@ void ScBroadcastAreaSlotMachine::UpdateBroadcastAreas( while (iTab != iStop) { SCTAB nTab = (*iTab).first + nDz; - aTableSlotsMap[nTab] = (*iTab).second; + aTableSlotsMap[nTab] = std::move((*iTab).second); aTableSlotsMap.erase( iTab--); } // Shift the very first, iTab==iStop in this case. if (bStopIsBegin) { SCTAB nTab = (*iTab).first + nDz; - aTableSlotsMap[nTab] = (*iTab).second; + aTableSlotsMap[nTab] = std::move((*iTab).second); aTableSlotsMap.erase( iStop); } } @@ -1056,7 +1050,7 @@ void ScBroadcastAreaSlotMachine::UpdateBroadcastAreas( { TableSlotsMap::iterator iTab( aTableSlotsMap.find( nTab)); if (iTab == aTableSlotsMap.end()) - iTab = aTableSlotsMap.emplace(nTab, new TableSlots).first; + iTab = aTableSlotsMap.emplace(nTab, std::unique_ptr<TableSlots>(new TableSlots)).first; ScBroadcastAreaSlot** ppSlots = (*iTab).second->getSlots(); SCSIZE nStart, nEnd, nRowBreak; ComputeAreaPoints( aRange, nStart, nEnd, nRowBreak ); diff --git a/sc/source/core/inc/bcaslot.hxx b/sc/source/core/inc/bcaslot.hxx index 34199c2ec972..2ac91fcb4438 100644 --- a/sc/source/core/inc/bcaslot.hxx +++ b/sc/source/core/inc/bcaslot.hxx @@ -281,7 +281,7 @@ private: TableSlots& operator=( const TableSlots& ) = delete; }; - typedef ::std::map< SCTAB, TableSlots* > TableSlotsMap; + typedef ::std::map< SCTAB, std::unique_ptr<TableSlots> > TableSlotsMap; typedef ::std::vector< ::std::pair< ScBroadcastAreaSlot*, ScBroadcastAreas::iterator > > AreasToBeErased; @@ -290,7 +290,7 @@ private: BulkGroupAreasType m_BulkGroupAreas; TableSlotsMap aTableSlotsMap; AreasToBeErased maAreasToBeErased; - SvtBroadcaster *pBCAlways; // for the RC_ALWAYS special range + std::unique_ptr<SvtBroadcaster> pBCAlways; // for the RC_ALWAYS special range ScDocument *pDoc; ScBroadcastArea *pUpdateChain; ScBroadcastArea *pEOUpdateChain; |