Fixed bug 2953 - Crash due to a bad cleanup in the SDL_SYS_HapticQuit function

Technically this is caused by the haptic devices not being closed at quit time, which we need to fix anyway, but this is a bandaid for now.
main
Sam Lantinga 2015-06-14 19:21:13 -07:00
parent a4eb0dea86
commit e3df6d5e66
6 changed files with 14 additions and 3 deletions

View File

@ -845,3 +845,4 @@ SDL_HapticRumbleStop(SDL_Haptic * haptic)
return SDL_HapticStopEffect(haptic, haptic->rumble_id); return SDL_HapticStopEffect(haptic, haptic->rumble_id);
} }
/* vi: set ts=4 sw=4 expandtab: */

View File

@ -206,4 +206,3 @@ extern int SDL_SYS_HapticStopAll(SDL_Haptic * haptic);
#endif /* _SDL_syshaptic_h */ #endif /* _SDL_syshaptic_h */
/* vi: set ts=4 sw=4 expandtab: */ /* vi: set ts=4 sw=4 expandtab: */

View File

@ -683,7 +683,10 @@ SDL_SYS_HapticQuit(void)
IOObjectRelease(item->dev); IOObjectRelease(item->dev);
SDL_free(item); SDL_free(item);
} }
numhaptics = -1; numhaptics = -1;
SDL_hapticlist = NULL;
SDL_hapticlist_tail = NULL;
} }
@ -1409,5 +1412,6 @@ SDL_SYS_HapticStopAll(SDL_Haptic * haptic)
return 0; return 0;
} }
#endif /* SDL_HAPTIC_IOKIT */ #endif /* SDL_HAPTIC_IOKIT */
/* vi: set ts=4 sw=4 expandtab: */

View File

@ -182,3 +182,5 @@ SDL_SYS_HapticStopAll(SDL_Haptic * haptic)
} }
#endif /* SDL_HAPTIC_DUMMY || SDL_HAPTIC_DISABLED */ #endif /* SDL_HAPTIC_DUMMY || SDL_HAPTIC_DISABLED */
/* vi: set ts=4 sw=4 expandtab: */

View File

@ -1162,5 +1162,6 @@ SDL_SYS_HapticStopAll(SDL_Haptic * haptic)
return 0; return 0;
} }
#endif /* SDL_HAPTIC_LINUX */ #endif /* SDL_HAPTIC_LINUX */
/* vi: set ts=4 sw=4 expandtab: */

View File

@ -272,6 +272,10 @@ SDL_SYS_HapticQuit(void)
SDL_XINPUT_HapticQuit(); SDL_XINPUT_HapticQuit();
SDL_DINPUT_HapticQuit(); SDL_DINPUT_HapticQuit();
numhaptics = 0;
SDL_hapticlist = NULL;
SDL_hapticlist_tail = NULL;
} }
/* /*