From eb6388c4a5922a8e87794569fe854c681a6bd884 Mon Sep 17 00:00:00 2001 From: Michael Stefaniuc Date: Mon, 2 Jul 2012 01:05:01 +0200 Subject: [PATCH] quartz: Don't set the VideoRenderer object on creation failure. --- dlls/quartz/videorenderer.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/dlls/quartz/videorenderer.c b/dlls/quartz/videorenderer.c index 3e632cb6f9f..0edf406673f 100644 --- a/dlls/quartz/videorenderer.c +++ b/dlls/quartz/videorenderer.c @@ -668,8 +668,6 @@ HRESULT VideoRenderer_create(IUnknown * pUnkOuter, LPVOID * ppv) if (FAILED(hr)) goto fail; - *ppv = pVideoRenderer; - hr = BaseControlWindow_Init(&pVideoRenderer->baseControlWindow, &IVideoWindow_VTable, &pVideoRenderer->renderer.filter, &pVideoRenderer->renderer.filter.csFilter, &pVideoRenderer->renderer.pInputPin->pin, &renderer_BaseWindowFuncTable); if (FAILED(hr)) goto fail; @@ -678,10 +676,14 @@ HRESULT VideoRenderer_create(IUnknown * pUnkOuter, LPVOID * ppv) if (FAILED(hr)) goto fail; - if (!CreateRenderingSubsystem(pVideoRenderer)) - return E_FAIL; + if (!CreateRenderingSubsystem(pVideoRenderer)) { + hr = E_FAIL; + goto fail; + } + + *ppv = pVideoRenderer; + return S_OK; - return hr; fail: BaseRendererImpl_Release(&pVideoRenderer->renderer.filter.IBaseFilter_iface); CoTaskMemFree(pVideoRenderer);