diff --git a/src/haptic/windows/SDL_syshaptic.c b/src/haptic/windows/SDL_syshaptic.c index 6be0e4dcf..59f745668 100644 --- a/src/haptic/windows/SDL_syshaptic.c +++ b/src/haptic/windows/SDL_syshaptic.c @@ -221,6 +221,10 @@ DirectInputHaptic_MaybeAddDevice(const DIDEVICEINSTANCE * pdidInstance) DIDEVCAPS capabilities; 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 */ for (item = SDL_hapticlist; item; item = item->next) { 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 *prev = NULL; + if (dinput == NULL) { + return -1; /* not initialized, ignore this. */ + } + for (item = SDL_hapticlist; item != NULL; item = item->next) { if ( (!item->bXInputHaptic) && (SDL_memcmp(&item->instance, pdidInstance, sizeof (*pdidInstance)) == 0) ) { /* found it, remove it. */