Browse Source

Fixed crash when the joystick can't be opened

Sam Lantinga 1 year ago
parent
commit
eb8b5ed3a4
1 changed files with 11 additions and 2 deletions
  1. 11 2
      test/testcontroller.c

+ 11 - 2
test/testcontroller.c

@@ -295,16 +295,25 @@ static int StandardizeAxisValue(int nValue)
 
 static void RefreshControllerName(void)
 {
+    const char *name = NULL;
+
     SDL_free(controller_name);
     controller_name = NULL;
 
     if (controller) {
         if (controller->gamepad) {
-            controller_name = SDL_strdup(SDL_GetGamepadName(controller->gamepad));
+            name = SDL_GetGamepadName(controller->gamepad);
         } else {
-            controller_name = SDL_strdup(SDL_GetJoystickName(controller->joystick));
+            name = SDL_GetJoystickName(controller->joystick);
         }
     }
+
+    SDL_free(controller_name);
+    if (name) {
+        controller_name = SDL_strdup(name);
+    } else {
+        controller_name = SDL_strdup("");
+    }
 }
 
 static void SetAndFreeGamepadMapping(char *mapping)