Fixed crash on Windows if haptic isn't initialized when controllers are added.
parent
56979749e9
commit
7033e597b5
|
@ -221,6 +221,10 @@ DirectInputHaptic_MaybeAddDevice(const DIDEVICEINSTANCE * pdidInstance)
|
||||||
DIDEVCAPS capabilities;
|
DIDEVCAPS capabilities;
|
||||||
SDL_hapticlist_item *item = NULL;
|
SDL_hapticlist_item *item = NULL;
|
||||||
|
|
||||||
|
if (dinput == NULL) {
|
||||||
|
return -1; /* not initialized. We'll pick these up on enumeration if we init later. */
|
||||||
|
}
|
||||||
|
|
||||||
/* Make sure we don't already have it */
|
/* Make sure we don't already have it */
|
||||||
for (item = SDL_hapticlist; item; item = item->next) {
|
for (item = SDL_hapticlist; item; item = item->next) {
|
||||||
if ( (!item->bXInputHaptic) && (SDL_memcmp(&item->instance, pdidInstance, sizeof (*pdidInstance)) == 0) ) {
|
if ( (!item->bXInputHaptic) && (SDL_memcmp(&item->instance, pdidInstance, sizeof (*pdidInstance)) == 0) ) {
|
||||||
|
@ -286,6 +290,10 @@ DirectInputHaptic_MaybeRemoveDevice(const DIDEVICEINSTANCE * pdidInstance)
|
||||||
SDL_hapticlist_item *item;
|
SDL_hapticlist_item *item;
|
||||||
SDL_hapticlist_item *prev = NULL;
|
SDL_hapticlist_item *prev = NULL;
|
||||||
|
|
||||||
|
if (dinput == NULL) {
|
||||||
|
return -1; /* not initialized, ignore this. */
|
||||||
|
}
|
||||||
|
|
||||||
for (item = SDL_hapticlist; item != NULL; item = item->next) {
|
for (item = SDL_hapticlist; item != NULL; item = item->next) {
|
||||||
if ( (!item->bXInputHaptic) && (SDL_memcmp(&item->instance, pdidInstance, sizeof (*pdidInstance)) == 0) ) {
|
if ( (!item->bXInputHaptic) && (SDL_memcmp(&item->instance, pdidInstance, sizeof (*pdidInstance)) == 0) ) {
|
||||||
/* found it, remove it. */
|
/* found it, remove it. */
|
||||||
|
|
Loading…
Reference in New Issue