[PATCH 1/5] mfplat: Fix asynchronous object creation from URL.

Derek Lesho dlesho at codeweavers.com
Fri Oct 16 17:02:36 CDT 2020


Signed-off-by: Derek Lesho <dlesho at codeweavers.com>
---
 dlls/mfplat/main.c         | 4 +++-
 dlls/mfplat/tests/mfplat.c | 2 --
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/dlls/mfplat/main.c b/dlls/mfplat/main.c
index a6ff97ae04a..8ed18b1b87f 100644
--- a/dlls/mfplat/main.c
+++ b/dlls/mfplat/main.c
@@ -5750,6 +5750,8 @@ static HRESULT resolver_handler_end_create(struct source_resolver *resolver, enu
     if (!(queued_result = heap_alloc_zero(sizeof(*queued_result))))
         return E_OUTOFMEMORY;
 
+    queued_result->origin = origin;
+
     IRtwqAsyncResult_GetObject(inner_result, &handler.handler);
 
     switch (origin)
@@ -5788,8 +5790,8 @@ static HRESULT resolver_handler_end_create(struct source_resolver *resolver, enu
 
         if (SUCCEEDED(RtwqCreateAsyncResult(queued_result->object, data->pCallback, caller_state, &caller_result)))
         {
+            queued_result->inner_result = caller_result;
             RtwqInvokeCallback(caller_result);
-            IRtwqAsyncResult_Release(caller_result);
         }
     }
 
diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c
index 55c07adb1fe..a5388840bc5 100644
--- a/dlls/mfplat/tests/mfplat.c
+++ b/dlls/mfplat/tests/mfplat.c
@@ -343,12 +343,10 @@ static HRESULT WINAPI test_create_from_url_callback_Invoke(IMFAsyncCallback *ifa
 
     object = NULL;
     hr = IMFSourceResolver_EndCreateObjectFromURL(resolver, result, &obj_type, &object);
-todo_wine
     ok(hr == S_OK, "Failed to create an object, hr %#x.\n", hr);
 
     hr = IMFAsyncResult_GetObject(result, &object2);
     ok(hr == S_OK, "Failed to get result object, hr %#x.\n", hr);
-todo_wine
     ok(object2 == object, "Unexpected object.\n");
 
     if (object)
-- 
2.28.0




More information about the wine-devel mailing list