From: Conor McCarthy cmccarthy@codeweavers.com
--- dlls/mfplat/tests/mfplat.c | 10 ++-------- dlls/rtworkq/queue.c | 6 ++++-- dlls/rtworkq/tests/rtworkq.c | 6 ------ 3 files changed, 6 insertions(+), 16 deletions(-)
diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c index b0301d8e4b7..07fdde41cbe 100644 --- a/dlls/mfplat/tests/mfplat.c +++ b/dlls/mfplat/tests/mfplat.c @@ -13251,23 +13251,17 @@ static void test_undefined_queue_id(void) IMFAsyncResult_Release(result);
hr = MFPutWorkItem(MFASYNC_CALLBACK_QUEUE_PRIVATE_MASK, &callback->IMFAsyncCallback_iface, NULL); - todo_wine ok(hr == S_OK, "got %#lx\n", hr); res = wait_async_callback_result(&callback->IMFAsyncCallback_iface, 100, &result); - todo_wine ok(res == 0, "got %#lx\n", res); - if (result) - IMFAsyncResult_Release(result); + IMFAsyncResult_Release(result);
hr = MFPutWorkItem(MFASYNC_CALLBACK_QUEUE_PRIVATE_MASK & (MFASYNC_CALLBACK_QUEUE_PRIVATE_MASK - 1), &callback->IMFAsyncCallback_iface, NULL); - todo_wine ok(hr == S_OK, "got %#lx\n", hr); res = wait_async_callback_result(&callback->IMFAsyncCallback_iface, 100, &result); - todo_wine ok(res == 0, "got %#lx\n", res); - if (result) - IMFAsyncResult_Release(result); + IMFAsyncResult_Release(result);
IMFAsyncCallback_Release(&callback->IMFAsyncCallback_iface);
diff --git a/dlls/rtworkq/queue.c b/dlls/rtworkq/queue.c index 8b9bb631202..29ea3c884f2 100644 --- a/dlls/rtworkq/queue.c +++ b/dlls/rtworkq/queue.c @@ -298,6 +298,10 @@ static struct queue *get_system_queue(DWORD queue_id) { switch (queue_id) { + default: + if (!(RTWQ_CALLBACK_QUEUE_PRIVATE_MASK & queue_id)) + return NULL; + /* fall through */ case RTWQ_CALLBACK_QUEUE_UNDEFINED: /* Works in native Windows. Undocumented, but seems to use standard. */ queue_id = RTWQ_CALLBACK_QUEUE_STANDARD; @@ -309,8 +313,6 @@ static struct queue *get_system_queue(DWORD queue_id) case RTWQ_CALLBACK_QUEUE_MULTITHREADED: case RTWQ_CALLBACK_QUEUE_LONG_FUNCTION: return &system_queues[queue_id - 1]; - default: - return NULL; } }
diff --git a/dlls/rtworkq/tests/rtworkq.c b/dlls/rtworkq/tests/rtworkq.c index 57e00b8afcd..d075989ad2b 100644 --- a/dlls/rtworkq/tests/rtworkq.c +++ b/dlls/rtworkq/tests/rtworkq.c @@ -234,21 +234,15 @@ static void test_undefined_queue_id(void) ok(callback_result == result, "Expected result %p, got %p.\n", result, callback_result);
hr = RtwqPutWorkItem(RTWQ_CALLBACK_QUEUE_PRIVATE_MASK, 0, result); - todo_wine ok(hr == S_OK, "got %#lx\n", hr); res = wait_async_callback_result(&test_callback->IRtwqAsyncCallback_iface, 100, &callback_result); - todo_wine ok(res == 0, "got %#lx\n", res); - todo_wine ok(callback_result == result, "Expected result %p, got %p.\n", result, callback_result);
hr = RtwqPutWorkItem(RTWQ_CALLBACK_QUEUE_PRIVATE_MASK & (RTWQ_CALLBACK_QUEUE_PRIVATE_MASK - 1), 0, result); - todo_wine ok(hr == S_OK, "got %#lx\n", hr); res = wait_async_callback_result(&test_callback->IRtwqAsyncCallback_iface, 100, &callback_result); - todo_wine ok(res == 0, "got %#lx\n", res); - todo_wine ok(callback_result == result, "Expected result %p, got %p.\n", result, callback_result);
IRtwqAsyncResult_Release(result);