Thanks for working on this. The logic looks good, just some small comments in-line below.
On Sat, Feb 04, 2017 at 03:35:10PM +0200, Jetro Jormalainen wrote:
diff --git a/dlls/dinput/dinput_main.c b/dlls/dinput/dinput_main.c index 06af92f9b2..05651c9ced 100644 --- a/dlls/dinput/dinput_main.c +++ b/dlls/dinput/dinput_main.c @@ -930,7 +930,8 @@ static HRESULT WINAPI IDirectInput8AImpl_EnumDevicesBySemantics( LPDIRECTINPUTDEVICE8A lpdid; DWORD callbackFlags; int i, j;
- int c = 0;
Please use a more descriptive variable name, like "count" or "total" or something.
- for (i=0; i < c; i++)
- {
unsigned remain = c - (i+1) + ((dwFlags & DIEDBSFL_FORCEFEEDBACK) ? 0 : sizeof(guids)/sizeof(guids[0]));
Please consistently use spaces around operators.
If you wanted to make that line a little less ugly, you could assign "remain" before the loop and decrement it each iteration.
callbackFlags = diactionformat_priorityA(lpdiActionFormat, lpdiActionFormat->dwGenre);
IDirectInput_CreateDevice(iface, &didevis[i].guidInstance, &lpdid, NULL);
if (lpCallback(&didevis[i], lpdid, callbackFlags, remain, pvRef) == DIENUM_STOP)
{
HeapFree(GetProcessHeap(), 0, (void*) didevis);
return DI_OK;
}
- }
- HeapFree(GetProcessHeap(), 0, (void*) didevis);
There's no need for the explicit cast in HeapFree.
All of the above also applies to the W-version, obviously.
- if (!data->device_count) {
data->first_remaining = dwRemaining;
- }
- ok (dwRemaining == data->first_remaining - data->device_count,
"enum semantics remaining devices is wrong, expected %d, had %d",
data->first_remaining - data->device_count, dwRemaining);
This ok() needs a newline at the end.
Andrew