diff -r d845db10c0d4 -r 15bc1d5d6267 emailservices/emailstore/base_plugin/inc/baseplugincommonutils.h --- a/emailservices/emailstore/base_plugin/inc/baseplugincommonutils.h Fri Jul 09 12:17:13 2010 +0300 +++ b/emailservices/emailstore/base_plugin/inc/baseplugincommonutils.h Fri Jul 23 19:09:50 2010 +0300 @@ -49,4 +49,29 @@ CleanupResetAndDestroyClose::PushL(aRef); } +/** +* Cleanup support for owning pointer arrays +*/ + +template +class CleanupResetAndDestroy +{ +private: + inline static void ResetAndDestroy( TAny *aPtr ) + { + reinterpret_cast( aPtr )->ResetAndDestroy(); + }; +public: + inline static void PushL( T& aItem ) + { + TCleanupItem item( &CleanupResetAndDestroy::ResetAndDestroy, &aItem ); + CleanupStack::PushL( item ); + }; +} ; + +template +inline void CleanupResetAndDestroyPushL( T& aRef ) + { + CleanupResetAndDestroy::PushL( aRef ); + } #endif