From: Rémi Bernon rbernon@codeweavers.com
--- dlls/mf/tests/transform.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/dlls/mf/tests/transform.c b/dlls/mf/tests/transform.c index 34a00526eab..b7d8c088870 100644 --- a/dlls/mf/tests/transform.c +++ b/dlls/mf/tests/transform.c @@ -278,6 +278,7 @@ void check_attributes_(const char *file, int line, IMFAttributes *attributes, todo_wine_if(desc[i].todo_value) ok_(file, line)(ret == 0, "%s mismatch, type %u, value %s\n", debugstr_a(desc[i].name), value.vt, buffer); + PropVariantClear(&value); } }
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/mf/tests/transform.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/dlls/mf/tests/transform.c b/dlls/mf/tests/transform.c index b7d8c088870..ec9be42d8c8 100644 --- a/dlls/mf/tests/transform.c +++ b/dlls/mf/tests/transform.c @@ -6504,7 +6504,10 @@ static void test_video_processor(void) || IsEqualGUID(&expect_available_inputs[i], &MFAudioFormat_MPEG) || IsEqualGUID(&expect_available_inputs[i], &MFVideoFormat_420O) || IsEqualGUID(&expect_available_inputs[i], &MFVideoFormat_A16B16G16R16F) /* w1064v1507 */) + { + IMFMediaType_Release(media_type); continue; + }
winetest_push_context("in %lu", i); ok(hr == S_OK, "GetInputAvailableType returned %#lx\n", hr);
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/rtworkq/queue.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/dlls/rtworkq/queue.c b/dlls/rtworkq/queue.c index d6c28ca4566..baf648bf771 100644 --- a/dlls/rtworkq/queue.c +++ b/dlls/rtworkq/queue.c @@ -131,6 +131,7 @@ struct work_item RTWQWORKITEM_KEY key; LONG priority; DWORD flags; + TP_WORK *work_object; PTP_SIMPLE_CALLBACK finalization_callback; union { @@ -374,7 +375,6 @@ static void pool_queue_submit(struct queue *queue, struct work_item *item) { TP_CALLBACK_PRIORITY callback_priority; TP_CALLBACK_ENVIRON_V3 env; - TP_WORK *work_object;
if (item->priority == 0) callback_priority = TP_CALLBACK_PRIORITY_NORMAL; @@ -389,8 +389,8 @@ static void pool_queue_submit(struct queue *queue, struct work_item *item) we need finalization callback. */ if (item->finalization_callback) IUnknown_AddRef(&item->IUnknown_iface); - work_object = CreateThreadpoolWork(standard_queue_worker, item, (TP_CALLBACK_ENVIRON *)&env); - SubmitThreadpoolWork(work_object); + item->work_object = CreateThreadpoolWork(standard_queue_worker, item, (TP_CALLBACK_ENVIRON *)&env); + SubmitThreadpoolWork(item->work_object);
TRACE("dispatched %p.\n", item->result); } @@ -551,6 +551,8 @@ static ULONG WINAPI work_item_Release(IUnknown *iface)
if (!refcount) { + if (item->work_object) + CloseThreadpoolWork(item->work_object); if (item->reply_result) IRtwqAsyncResult_Release(item->reply_result); IRtwqAsyncResult_Release(item->result);
This merge request was approved by Nikolay Sivov.