Only call SDL_NumJoysticks() once per loop

It does non-trivial work when using sdl2-compat.
This commit is contained in:
Cameron Gutman
2024-11-12 23:52:31 -06:00
parent 707dd3cb83
commit 15e337fff8
2 changed files with 8 additions and 4 deletions

View File

@@ -913,7 +913,8 @@ QString SdlInputHandler::getUnmappedGamepads()
MappingManager mappingManager;
mappingManager.applyMappings();
for (int i = 0; i < SDL_NumJoysticks(); i++) {
int numJoysticks = SDL_NumJoysticks();
for (int i = 0; i < numJoysticks; i++) {
if (!SDL_IsGameController(i)) {
char guidStr[33];
SDL_JoystickGetGUIDString(SDL_JoystickGetDeviceGUID(i),
@@ -973,7 +974,8 @@ int SdlInputHandler::getAttachedGamepadMask()
}
count = mask = 0;
for (int i = 0; i < SDL_NumJoysticks(); i++) {
int numJoysticks = SDL_NumJoysticks();
for (int i = 0; i < numJoysticks; i++) {
if (SDL_IsGameController(i)) {
char guidStr[33];
SDL_JoystickGetGUIDString(SDL_JoystickGetDeviceGUID(i),