quartz: Avoid a COM object => iface => object round trip.
authorMichael Stefaniuc <mstefani@redhat.de>
Mon, 2 Jul 2012 22:17:23 +0000 (00:17 +0200)
committerAlexandre Julliard <julliard@winehq.org>
Tue, 3 Jul 2012 10:02:38 +0000 (12:02 +0200)
dlls/quartz/memallocator.c

index f74a2fd..df4cf63 100644 (file)
@@ -335,14 +335,14 @@ static HRESULT WINAPI BaseMemAllocator_GetBuffer(IMemAllocator * iface, IMediaSa
             hr = VFW_E_TIMEOUT;
         else
         {
+            StdMediaSample2 *ms;
             struct list * free = list_head(&This->free_list);
             list_remove(free);
             list_add_head(&This->used_list, free);
 
-            *pSample = (IMediaSample *)LIST_ENTRY(free, StdMediaSample2, listentry);
-
-            assert(((StdMediaSample2 *)*pSample)->ref == 0);
-
+            ms = LIST_ENTRY(free, StdMediaSample2, listentry);
+            assert(ms->ref == 0);
+            *pSample = (IMediaSample *)&ms->IMediaSample2_iface;
             IMediaSample_AddRef(*pSample);
         }
     }