diff --git a/dlls/dinput/effect_linuxinput.c b/dlls/dinput/effect_linuxinput.c index 4a31ec10229..ab72d2c4d8c 100644 --- a/dlls/dinput/effect_linuxinput.c +++ b/dlls/dinput/effect_linuxinput.c @@ -724,17 +724,6 @@ static HRESULT WINAPI LinuxInputEffectImpl_SetParameters( return DI_OK; } -static ULONG WINAPI LinuxInputEffectImpl_Release( - LPDIRECTINPUTEFFECT iface) -{ - LinuxInputEffectImpl *This = (LinuxInputEffectImpl *)iface; - ULONG ref = InterlockedDecrement(&(This->ref)); - - if (ref == 0) - HeapFree(GetProcessHeap(), 0, This); - return ref; -} - static HRESULT WINAPI LinuxInputEffectImpl_Stop( LPDIRECTINPUTEFFECT iface) { @@ -768,6 +757,20 @@ static HRESULT WINAPI LinuxInputEffectImpl_Unload( return DI_OK; } +static ULONG WINAPI LinuxInputEffectImpl_Release(LPDIRECTINPUTEFFECT iface) +{ + LinuxInputEffectImpl *This = (LinuxInputEffectImpl *)iface; + ULONG ref = InterlockedDecrement(&(This->ref)); + + if (ref == 0) + { + LinuxInputEffectImpl_Stop(iface); + LinuxInputEffectImpl_Unload(iface); + HeapFree(GetProcessHeap(), 0, This); + } + return ref; +} + /****************************************************************************** * LinuxInputEffect */