Fixed cookie memory leak, changed cookies to only be created once.

This commit is contained in:
richard
2009-10-10 18:26:27 +02:00
parent 92bffae62c
commit bc7a019e8f
4 changed files with 19 additions and 36 deletions

View File

@ -25,24 +25,19 @@ ClassOnCookiesCreate()
// Forward event to sub-modules.
ClassOverlayOnCookiesCreate();
// Close cookie handles if they already exist.
if (g_hClassCookieClassSelected[ZR_CLASS_TEAM_HUMANS] != INVALID_HANDLE)
// Create cookie handles only if they don't exist.
if (g_hClassCookieClassSelected[ZR_CLASS_TEAM_HUMANS] == INVALID_HANDLE)
{
CloseHandle(g_hClassCookieClassSelected[ZR_CLASS_TEAM_HUMANS]);
g_hClassCookieClassSelected[ZR_CLASS_TEAM_HUMANS] = RegClientCookie("zr_humanclass", "The last human class selected.", CookieAccess_Protected);
}
if (g_hClassCookieClassSelected[ZR_CLASS_TEAM_ZOMBIES] != INVALID_HANDLE)
if (g_hClassCookieClassSelected[ZR_CLASS_TEAM_ZOMBIES] == INVALID_HANDLE)
{
CloseHandle(g_hClassCookieClassSelected[ZR_CLASS_TEAM_ZOMBIES]);
g_hClassCookieClassSelected[ZR_CLASS_TEAM_ZOMBIES] = RegClientCookie("zr_zombieclass", "The last zombie class selected.", CookieAccess_Protected);
}
if (g_hClassCookieClassSelected[ZR_CLASS_TEAM_ADMINS] != INVALID_HANDLE)
if (g_hClassCookieClassSelected[ZR_CLASS_TEAM_ADMINS] == INVALID_HANDLE)
{
CloseHandle(g_hClassCookieClassSelected[ZR_CLASS_TEAM_ADMINS]);
g_hClassCookieClassSelected[ZR_CLASS_TEAM_ADMINS] = RegClientCookie("zr_adminclass", "The last admin mode class selected.", CookieAccess_Protected);
}
// Create class index cookies.
g_hClassCookieClassSelected[ZR_CLASS_TEAM_HUMANS] = RegClientCookie("zr_humanclass", "The last human class selected.", CookieAccess_Protected);
g_hClassCookieClassSelected[ZR_CLASS_TEAM_ZOMBIES] = RegClientCookie("zr_zombieclass", "The last zombie class selected.", CookieAccess_Protected);
g_hClassCookieClassSelected[ZR_CLASS_TEAM_ADMINS] = RegClientCookie("zr_adminclass", "The last admin mode class selected.", CookieAccess_Protected);
}
/**

View File

@ -76,14 +76,11 @@ ClassOverlayOnCommandsHook()
*/
ClassOverlayOnCookiesCreate()
{
// Close cookie handle if it already exist.
if (g_hOverlayEnabledCookie != INVALID_HANDLE)
// Create cookie handle only if it don't exist.
if (g_hOverlayEnabledCookie == INVALID_HANDLE)
{
CloseHandle(g_hOverlayEnabledCookie);
g_hOverlayEnabledCookie = RegClientCookie(CLASSOVERLAY_COOKIE_ENABLED, "The toggle state of the class overlay.", CookieAccess_Protected);
}
// Create overlay cookie.
g_hOverlayEnabledCookie = RegClientCookie(CLASSOVERLAY_COOKIE_ENABLED, "The toggle state of the class overlay.", CookieAccess_Protected);
}
/**