[PATCH v3 4/4] quartz/systemclock: Use the global HeapAlloc() wrappers.

Zebediah Figura z.figura12 at gmail.com
Thu Mar 14 12:12:21 CDT 2019


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/quartz/quartz_private.h |  1 +
 dlls/quartz/systemclock.c    | 47 ++++++++++++++++--------------------
 2 files changed, 22 insertions(+), 26 deletions(-)

diff --git a/dlls/quartz/quartz_private.h b/dlls/quartz/quartz_private.h
index be31c92946..2104f806f7 100644
--- a/dlls/quartz/quartz_private.h
+++ b/dlls/quartz/quartz_private.h
@@ -31,6 +31,7 @@
 #include "winuser.h"
 #include "dshow.h"
 #include "wine/debug.h"
+#include "wine/heap.h"
 #include "wine/strmbase.h"
 #include "wine/list.h"
 
diff --git a/dlls/quartz/systemclock.c b/dlls/quartz/systemclock.c
index c809ce4bfc..e9f13b5130 100644
--- a/dlls/quartz/systemclock.c
+++ b/dlls/quartz/systemclock.c
@@ -122,7 +122,7 @@ static DWORD WINAPI SystemClockAdviseThread(LPVOID lpParam) {
       SetEvent(it->hEvent);
       /** ... and Release it */
       QUARTZ_RemoveAviseEntryFromQueue(This, it);
-      CoTaskMemFree(it);
+      heap_free(it);
       it = nextit;
     }
     if (NULL != it) timeOut = (DWORD) ((it->rtBaseTime + it->rtIntervalTime) - curTime) / (REFERENCE_TIME)10000;
@@ -234,7 +234,7 @@ static ULONG WINAPI SystemClockImpl_Release(IReferenceClock* iface) {
     }
     This->safe.DebugInfo->Spare[0] = 0;
     DeleteCriticalSection(&This->safe);
-    CoTaskMemFree(This);
+    heap_free(This);
   }
   return ref;
 }
@@ -279,11 +279,9 @@ static HRESULT WINAPI SystemClockImpl_AdviseTime(IReferenceClock* iface, REFEREN
   if (NULL == pdwAdviseCookie) {
     return E_POINTER;
   }
-  pEntry = CoTaskMemAlloc(sizeof(SystemClockAdviseEntry));
-  if (NULL == pEntry) {
+
+  if (!(pEntry = heap_alloc_zero(sizeof(*pEntry))))
     return E_OUTOFMEMORY;
-  }
-  ZeroMemory(pEntry, sizeof(SystemClockAdviseEntry));
 
   pEntry->hEvent = (HANDLE) hEvent;
   pEntry->rtBaseTime = rtBaseTime + rtStreamTime;
@@ -315,11 +313,9 @@ static HRESULT WINAPI SystemClockImpl_AdvisePeriodic(IReferenceClock* iface, REF
   if (NULL == pdwAdviseCookie) {
     return E_POINTER;
   }
-  pEntry = CoTaskMemAlloc(sizeof(SystemClockAdviseEntry));
-  if (NULL == pEntry) {
+
+  if (!(pEntry = heap_alloc_zero(sizeof(*pEntry))))
     return E_OUTOFMEMORY;
-  }
-  ZeroMemory(pEntry, sizeof(SystemClockAdviseEntry));
 
   pEntry->hEvent = (HANDLE) hSemaphore;
   pEntry->rtBaseTime = rtStartTime;
@@ -355,7 +351,7 @@ static HRESULT WINAPI SystemClockImpl_Unadvise(IReferenceClock* iface, DWORD_PTR
   }
 
   QUARTZ_RemoveAviseEntryFromQueue(This, pEntry);
-  CoTaskMemFree(pEntry);
+  heap_free(pEntry);
 
   SystemClockPostMessageToAdviseThread(This, ADVISE_REMOVE);
 
@@ -375,23 +371,22 @@ static const IReferenceClockVtbl SystemClock_Vtbl =
     SystemClockImpl_Unadvise
 };
 
-HRESULT QUARTZ_CreateSystemClock(IUnknown * pUnkOuter, LPVOID * ppv) {
-  SystemClockImpl* obj = NULL;
-  
-  TRACE("(%p,%p)\n", ppv, pUnkOuter);
+HRESULT QUARTZ_CreateSystemClock(IUnknown *outer, void **out)
+{
+    SystemClockImpl *object;
   
-  obj = CoTaskMemAlloc(sizeof(SystemClockImpl));
-  if (NULL == obj) 	{
-    *ppv = NULL;
-    return E_OUTOFMEMORY;
-  }
-  ZeroMemory(obj, sizeof(SystemClockImpl));
+    TRACE("outer %p, out %p.\n", outer, out);
+
+    if (!(object = heap_alloc_zero(sizeof(*object))))
+    {
+        *out = NULL;
+        return E_OUTOFMEMORY;
+    }
 
-  obj->IReferenceClock_iface.lpVtbl = &SystemClock_Vtbl;
-  obj->ref = 0;  /* will be inited by QueryInterface */
+    object->IReferenceClock_iface.lpVtbl = &SystemClock_Vtbl;
 
-  InitializeCriticalSection(&obj->safe);
-  obj->safe.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": SystemClockImpl.safe");
+    InitializeCriticalSection(&object->safe);
+    object->safe.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": SystemClockImpl.safe");
 
-  return SystemClockImpl_QueryInterface(&obj->IReferenceClock_iface, &IID_IReferenceClock, ppv);
+    return SystemClockImpl_QueryInterface(&object->IReferenceClock_iface, &IID_IReferenceClock, out);
 }
-- 
2.20.1




More information about the wine-devel mailing list