dinput: Prevent a device interface leak when enumerating.
Wine-Bug: https://bugs.winehq.org//show_bug.cgi?id=36263 Signed-off-by: Rémi Bernon <rbernon@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
d666aea360
commit
52aacd2377
|
@ -864,8 +864,10 @@ static HRESULT WINAPI IDirectInput8WImpl_EnumDevicesBySemantics(
|
|||
if (lpCallback(&didevis[i], lpdid, callbackFlags, --remain, pvRef) == DIENUM_STOP)
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, didevis);
|
||||
IDirectInputDevice_Release(lpdid);
|
||||
return DI_OK;
|
||||
}
|
||||
IDirectInputDevice_Release(lpdid);
|
||||
}
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, didevis);
|
||||
|
@ -883,7 +885,11 @@ static HRESULT WINAPI IDirectInput8WImpl_EnumDevicesBySemantics(
|
|||
IDirectInputDevice_GetDeviceInfo(lpdid, &didevi);
|
||||
|
||||
if (lpCallback(&didevi, lpdid, callbackFlags, --remain, pvRef) == DIENUM_STOP)
|
||||
{
|
||||
IDirectInputDevice_Release(lpdid);
|
||||
return DI_OK;
|
||||
}
|
||||
IDirectInputDevice_Release(lpdid);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue