diff --git a/Sources/Plasma/CoreLib/hsStlUtils.h b/Sources/Plasma/CoreLib/hsStlUtils.h index b69f084b..99535ea9 100644 --- a/Sources/Plasma/CoreLib/hsStlUtils.h +++ b/Sources/Plasma/CoreLib/hsStlUtils.h @@ -76,31 +76,6 @@ OutIt copy_if( InIt srcBegin, InIt srcEnd, OutIt dstBegin, Pred pred ) } - -// useful when clearing a vector/list/set of pointers that need to be deleted. -// use like: -// std::vector vec; -// std::for_each(vec.begin(),vec.end(),xtl::delete_ptr()); -// vec.clear(); - -struct delete_ptr -{ - template< class T > void operator()( T * p ) const { delete p;} -}; - -// useful when clearing a map of pointers that need to be deleted. -// use like: -// typedef std::map foomap; -// foomap m; -// std::for_each(m.begin(),m.end(),xtl::delete_map_ptr_T()); -// m.clear(); - -template< class A > -struct delete_map_ptr_T -{ - void operator()( typename A::value_type & pair ) const { delete pair.second;} -}; - // std::string trim std::string & trimleft(std::string & s, const char * charset=" \t\n\r"); std::wstring & trimleft(std::wstring & s, const wchar_t * charset=L" \t\n\r"); @@ -128,7 +103,7 @@ template bool GetStringGroupAsString(const T& group, std::string& s template bool GetStringGroupAsString(const T& group, std::wstring& s, wchar_t sep = L','); -} // namespace xtd +} // namespace xtl diff --git a/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgr.cpp b/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgr.cpp index 5eacc796..35321db9 100644 --- a/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgr.cpp +++ b/Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgr.cpp @@ -210,7 +210,9 @@ void plNetClientMgr::Shutdown() // void plNetClientMgr::IClearPendingLoads() { - std::for_each( fPendingLoads.begin(), fPendingLoads.end(), xtl::delete_ptr() ); + std::for_each( fPendingLoads.begin(), fPendingLoads.end(), + [](PendingLoad *pl) { delete pl; } + ); fPendingLoads.clear(); } @@ -1557,7 +1559,9 @@ void plNetClientMgr::SendPendingPagingRoomMsgs() void plNetClientMgr::ClearPendingPagingRoomMsgs() { - std::for_each( fPendingPagingRoomMsgs.begin(), fPendingPagingRoomMsgs.end(), xtl::delete_ptr() ); + std::for_each( fPendingPagingRoomMsgs.begin(), fPendingPagingRoomMsgs.end(), + [](plNetMsgPagingRoom *pr) { delete pr; } + ); fPendingPagingRoomMsgs.clear(); } diff --git a/Sources/Plasma/PubUtilLib/plNetCommon/plNetCommonHelpers.cpp b/Sources/Plasma/PubUtilLib/plNetCommon/plNetCommonHelpers.cpp index 9d31cdda..bfc3fad8 100644 --- a/Sources/Plasma/PubUtilLib/plNetCommon/plNetCommonHelpers.cpp +++ b/Sources/Plasma/PubUtilLib/plNetCommon/plNetCommonHelpers.cpp @@ -102,7 +102,9 @@ plCreatableListHelper::plCreatableListHelper() void plCreatableListHelper::IClearItems() { - std::for_each( fManagedItems.begin(), fManagedItems.end(), xtl::delete_ptr() ); + std::for_each( fManagedItems.begin(), fManagedItems.end(), + [](plCreatable * cre) { delete cre; } + ); fManagedItems.clear(); fItems.clear(); } diff --git a/Sources/Plasma/PubUtilLib/plSDL/plSDLMgr.cpp b/Sources/Plasma/PubUtilLib/plSDL/plSDLMgr.cpp index 4076baac..a88c42f4 100644 --- a/Sources/Plasma/PubUtilLib/plSDL/plSDLMgr.cpp +++ b/Sources/Plasma/PubUtilLib/plSDL/plSDLMgr.cpp @@ -83,7 +83,9 @@ void plSDLMgr::DeInit() // void plSDLMgr::IDeleteDescriptors(plSDL::DescriptorList* dl) { - std::for_each( dl->begin(), dl->end(), xtl::delete_ptr() ); + std::for_each( dl->begin(), dl->end(), + [](plStateDescriptor* sd) { delete sd; } + ); dl->clear(); } diff --git a/Sources/Plasma/PubUtilLib/plSDL/plStateDataRecord.cpp b/Sources/Plasma/PubUtilLib/plSDL/plStateDataRecord.cpp index 7d12c4dd..b742b5c2 100644 --- a/Sources/Plasma/PubUtilLib/plSDL/plStateDataRecord.cpp +++ b/Sources/Plasma/PubUtilLib/plSDL/plStateDataRecord.cpp @@ -121,7 +121,9 @@ void plStateDataRecord::SetDescriptor(const plString& name, int version) void plStateDataRecord::IDeleteVarsList(VarsList& vars) { - std::for_each( vars.begin(), vars.end(), xtl::delete_ptr() ); + std::for_each( vars.begin(), vars.end(), + [](plStateVariable* var) { delete var; } + ); vars.clear(); }