Fixed memory leak if joysticks were initialized but gamepads were not

If a joystick is connected, SDL_IsGamepad() will be called on it, which adds it to the cache, which then needs to be cleaned up when joysticks quit.
This commit is contained in:
Sam Lantinga 2024-07-27 13:44:45 -07:00
parent 7eb2605630
commit 91d2dbdc9d

View File

@ -3686,11 +3686,6 @@ void SDL_QuitGamepads(void)
SDL_CloseGamepad(SDL_gamepads);
}
if (s_gamepadInstanceIDs) {
SDL_DestroyHashTable(s_gamepadInstanceIDs);
s_gamepadInstanceIDs = NULL;
}
SDL_UnlockJoysticks();
}
@ -3710,6 +3705,11 @@ void SDL_QuitGamepadMappings(void)
SDL_FreeVIDPIDList(&SDL_allowed_gamepads);
SDL_FreeVIDPIDList(&SDL_ignored_gamepads);
if (s_gamepadInstanceIDs) {
SDL_DestroyHashTable(s_gamepadInstanceIDs);
s_gamepadInstanceIDs = NULL;
}
}
/*