|
@@ -465,7 +465,7 @@ SDL_SYS_HapticOpen(SDL_Haptic * haptic)
|
|
|
}
|
|
|
|
|
|
/* Set the fname. */
|
|
|
- haptic->hwdata->fname = item->fname;
|
|
|
+ haptic->hwdata->fname = SDL_strdup( item->fname );
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -542,11 +542,12 @@ SDL_SYS_HapticOpenFromJoystick(SDL_Haptic * haptic, SDL_Joystick * joystick)
|
|
|
/* Find the joystick in the haptic list. */
|
|
|
for (item = SDL_hapticlist; item; item = item->next) {
|
|
|
if (SDL_strcmp(item->fname, joystick->hwdata->fname) == 0) {
|
|
|
- haptic->index = device_index;
|
|
|
break;
|
|
|
}
|
|
|
++device_index;
|
|
|
}
|
|
|
+ haptic->index = device_index;
|
|
|
+
|
|
|
if (device_index >= MAX_HAPTICS) {
|
|
|
return SDL_SetError("Haptic: Joystick doesn't have Haptic capabilities");
|
|
|
}
|
|
@@ -561,7 +562,8 @@ SDL_SYS_HapticOpenFromJoystick(SDL_Haptic * haptic, SDL_Joystick * joystick)
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
- haptic->hwdata->fname = item->fname;
|
|
|
+ haptic->hwdata->fname = SDL_strdup( joystick->hwdata->fname );
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -583,6 +585,7 @@ SDL_SYS_HapticClose(SDL_Haptic * haptic)
|
|
|
close(haptic->hwdata->fd);
|
|
|
|
|
|
/* Free */
|
|
|
+ SDL_free(haptic->hwdata->fname);
|
|
|
SDL_free(haptic->hwdata);
|
|
|
haptic->hwdata = NULL;
|
|
|
}
|