evr/presenter: Fix error handling on object creation.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Nikolay Sivov 2020-11-09 15:02:44 +03:00 committed by Alexandre Julliard
parent 409392dfb7
commit c528ef47eb
1 changed files with 9 additions and 4 deletions

View File

@ -1207,13 +1207,18 @@ HRESULT evr_presenter_create(IUnknown *outer, void **out)
InitializeCriticalSection(&object->cs);
if (FAILED(hr = DXVA2CreateDirect3DDeviceManager9(&object->reset_token, &object->device_manager)))
IUnknown_Release(&object->IUnknown_inner);
goto failed;
if (FAILED(hr = video_presenter_init_d3d(object)))
IUnknown_Release(&object->IUnknown_inner);
goto failed;
if (SUCCEEDED(hr))
*out = &object->IUnknown_inner;
*out = &object->IUnknown_inner;
return S_OK;
failed:
IUnknown_Release(&object->IUnknown_inner);
return hr;
}