Fixed potential memory leak in class system.
This commit is contained in:
		| @@ -231,6 +231,9 @@ ClassMenuSelect(client, teamid) | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     // Destroy array. | ||||
|     CloseHandle(classarray); | ||||
|      | ||||
|     SetMenuExitBackButton(menu, true); | ||||
|     DisplayMenu(menu, client, MENU_TIME_FOREVER); | ||||
| } | ||||
|   | ||||
| @@ -693,6 +693,7 @@ stock ClassGetRandomClass(teamfilter = -1, bool:ignoreEnabled = false, requirefl | ||||
|     new Handle:classarray; | ||||
|     new arraycount; | ||||
|     new randnum; | ||||
|     new buffer; | ||||
|      | ||||
|     classarray = CreateArray(); | ||||
|      | ||||
| @@ -704,11 +705,14 @@ stock ClassGetRandomClass(teamfilter = -1, bool:ignoreEnabled = false, requirefl | ||||
|         randnum = GetRandomInt(0, arraycount - 1); | ||||
|          | ||||
|         // Return the value at the random index. | ||||
|         return GetArrayCell(classarray, randnum); | ||||
|         buffer = GetArrayCell(classarray, randnum); | ||||
|         CloseHandle(classarray); | ||||
|         return buffer; | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         // Failed to get a random class. | ||||
|         CloseHandle(classarray); | ||||
|         return -1; | ||||
|     } | ||||
| } | ||||
| @@ -808,6 +812,7 @@ stock ClassGetDefaultClass(teamid, bool:ignoreEnabled = false, requireflags = 0, | ||||
|     if (!ClassAddToArray(classarray, teamid, ignoreEnabled, requireflags, denyflags, cachetype)) | ||||
|     { | ||||
|         // Failed to get classes. | ||||
|         CloseHandle(classarray); | ||||
|         return -1; | ||||
|     } | ||||
|      | ||||
| @@ -822,10 +827,12 @@ stock ClassGetDefaultClass(teamid, bool:ignoreEnabled = false, requireflags = 0, | ||||
|         if (ClassGetTeamDefault(classindex, cachetype)) | ||||
|         { | ||||
|             // Default class found. | ||||
|             CloseHandle(classarray); | ||||
|             return classindex; | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     CloseHandle(classarray); | ||||
|     return -1; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -544,6 +544,9 @@ ClassLoad(bool:keepMultipliers = false) | ||||
|     ConfigSetConfigReloadFunc(File_Classes, GetFunctionByName(GetMyHandle(), "ClassOnConfigReload")); | ||||
|     // ConfigSetConfigHandle(File_Classes, INVALID_HANDLE); | ||||
|     ConfigSetConfigPath(File_Classes, pathclasses); | ||||
|      | ||||
|     // Remove key/value cache. | ||||
|     CloseHandle(kvClassData); | ||||
| } | ||||
|  | ||||
| /** | ||||
|   | ||||
		Reference in New Issue
	
	Block a user