diff -r 0d28c1c5b6dd -r 2828b4d142c0 presencecache/presencecacheutils/inc/presenceobjecthelpers.h --- a/presencecache/presencecacheutils/inc/presenceobjecthelpers.h Tue Apr 27 16:23:35 2010 +0300 +++ b/presencecache/presencecacheutils/inc/presenceobjecthelpers.h Tue May 11 16:00:21 2010 +0300 @@ -61,4 +61,19 @@ ~PresenceCacheBuddyUtils(); }; +// CleanupStack helpers for item owning RPointerArrays +template +class CleanupResetAndDestroy + { +public: + inline static void PushL(T& aRef) + { CleanupStack::PushL(TCleanupItem(&ResetAndDestroy,&aRef)); } +private: + inline static void ResetAndDestroy(TAny *aPtr) + { static_cast(aPtr)->ResetAndDestroy(); } + }; + +template +inline void CleanupResetAndDestroyPushL(T& aRef) + { CleanupResetAndDestroy::PushL(aRef); } #endif // PRESENCEOBJECTHELPERS_H