Zebediah Figura : quartz/filesource: Zero-initialize the file source filter.
Module: wine Branch: master Commit: 5c057693c8ef0956bbe37ba8b85a5631296d5e71 URL: https://source.winehq.org/git/wine.git/?a=commit;h=5c057693c8ef0956bbe37ba8b... Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Thu Feb 13 22:55:54 2020 -0600 quartz/filesource: Zero-initialize the file source filter. Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/quartz/filesource.c | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/dlls/quartz/filesource.c b/dlls/quartz/filesource.c index 11cc438be2..c1f7f69d5e 100644 --- a/dlls/quartz/filesource.c +++ b/dlls/quartz/filesource.c @@ -352,7 +352,7 @@ static void async_reader_destroy(struct strmbase_filter *iface) CloseHandle(filter->port); strmbase_filter_cleanup(&filter->filter); - CoTaskMemFree(filter); + free(filter); } static HRESULT async_reader_query_interface(struct strmbase_filter *iface, REFIID iid, void **out) @@ -414,31 +414,24 @@ static DWORD CALLBACK io_thread(void *arg) HRESULT AsyncReader_create(IUnknown *outer, void **out) { - AsyncReader *pAsyncRead; - - pAsyncRead = CoTaskMemAlloc(sizeof(AsyncReader)); + AsyncReader *object; - if (!pAsyncRead) + if (!(object = calloc(1, sizeof(*object)))) return E_OUTOFMEMORY; - strmbase_filter_init(&pAsyncRead->filter, outer, &CLSID_AsyncReader, &filter_ops); + strmbase_filter_init(&object->filter, outer, &CLSID_AsyncReader, &filter_ops); - pAsyncRead->IFileSourceFilter_iface.lpVtbl = &FileSource_Vtbl; + object->IFileSourceFilter_iface.lpVtbl = &FileSource_Vtbl; + object->IAsyncReader_iface.lpVtbl = &FileAsyncReader_Vtbl; - pAsyncRead->IAsyncReader_iface.lpVtbl = &FileAsyncReader_Vtbl; - - pAsyncRead->pszFileName = NULL; - - InitializeCriticalSection(&pAsyncRead->sample_cs); - pAsyncRead->sample_cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": FileAsyncReader.sample_cs"); - InitializeConditionVariable(&pAsyncRead->sample_cv); - pAsyncRead->port = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0); - pAsyncRead->io_thread = CreateThread(NULL, 0, io_thread, pAsyncRead, 0, NULL); - - *out = &pAsyncRead->filter.IUnknown_inner; - - TRACE("-- created at %p\n", pAsyncRead); + InitializeCriticalSection(&object->sample_cs); + object->sample_cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": FileAsyncReader.sample_cs"); + InitializeConditionVariable(&object->sample_cv); + object->port = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0); + object->io_thread = CreateThread(NULL, 0, io_thread, object, 0, NULL); + TRACE("Created file source %p.\n", object); + *out = &object->filter.IUnknown_inner; return S_OK; }
participants (1)
-
Alexandre Julliard