Registercallresult-: -steamapi

template< class T, class P = void > class CCallbackResult { public: CCallbackResult() : m_hAPICall( k_uAPICallInvalid ) {} template< class Y > SteamAPICall_t Set( SteamAPICall_t hAPICall, Y *pObj, void (Y::*pFunc)( T *, bool ) )

void CLeaderboardManager::CancelPendingRequests() -steamAPI registercallresult-

private: SteamAPICall_t m_hAPICall; };

If you call Set() repeatedly without letting the prior call complete or calling Cancel() , you are not leaking memory — but you are discarding the prior result registration. The previous SteamAPICall_t still exists internally in Steam but will never dispatch because its associated CCallbackResult was overwritten. template&lt; class T, class P = void &gt;