Don't bother calling SDL_SYS_HapticEffectType() at all for XInput devices.
diff --git a/src/haptic/windows/SDL_syshaptic.c b/src/haptic/windows/SDL_syshaptic.c
index f8b9096..c8cbd59 100644
--- a/src/haptic/windows/SDL_syshaptic.c
+++ b/src/haptic/windows/SDL_syshaptic.c
@@ -1202,10 +1202,13 @@ SDL_SYS_HapticNewEffect(SDL_Haptic * haptic, struct haptic_effect *effect,
SDL_HapticEffect * base)
{
HRESULT ret;
- REFGUID type = SDL_SYS_HapticEffectType(base);
+ REFGUID type = NULL;
- if ((type == NULL) && (!haptic->hwdata->bXInputHaptic)) {
- goto err_hweffect;
+ if (!haptic->hwdata->bXInputHaptic) {
+ type = SDL_SYS_HapticEffectType(base);
+ if (type == NULL) {
+ goto err_hweffect;
+ }
}
/* Alloc the effect. */