Zebediah Figura : quartz/vmr9: Don't release the default presenter object if it could not be created.
Module: wine Branch: master Commit: bfdb2e11e7d1a49f71ac8894944192135694ad39 URL: https://source.winehq.org/git/wine.git/?a=commit;h=bfdb2e11e7d1a49f71ac88949... Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Wed Feb 24 16:17:54 2021 -0600 quartz/vmr9: Don't release the default presenter object if it could not be created. Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/quartz/vmr9.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/dlls/quartz/vmr9.c b/dlls/quartz/vmr9.c index 57b219a6d26..c748e674081 100644 --- a/dlls/quartz/vmr9.c +++ b/dlls/quartz/vmr9.c @@ -1383,19 +1383,23 @@ static HRESULT WINAPI VMR9FilterConfig_SetRenderingMode(IVMRFilterConfig9 *iface case VMR9Mode_Windowless: This->cookie = ~0; - hr = VMR9DefaultAllocatorPresenterImpl_create(This, (LPVOID*)&This->presenter); - if (SUCCEEDED(hr)) - hr = IVMRImagePresenter9_QueryInterface(This->presenter, - &IID_IVMRSurfaceAllocator9, (void **)&This->allocator); - if (FAILED(hr)) + if (FAILED(hr = VMR9DefaultAllocatorPresenterImpl_create(This, (void **)&This->presenter))) + { + ERR("Failed to create default presenter, hr %#x.\n", hr); + break; + } + + if (FAILED(hr = IVMRImagePresenter9_QueryInterface(This->presenter, + &IID_IVMRSurfaceAllocator9, (void **)&This->allocator))) { - ERR("Unable to find Presenter interface\n"); + ERR("Failed to query for IVMRSurfaceAllocator9, hr %#x.\n", hr); IVMRImagePresenter9_Release(This->presenter); This->allocator = NULL; This->presenter = NULL; + break; } - else - hr = IVMRSurfaceAllocator9_AdviseNotify(This->allocator, &This->IVMRSurfaceAllocatorNotify9_iface); + + hr = IVMRSurfaceAllocator9_AdviseNotify(This->allocator, &This->IVMRSurfaceAllocatorNotify9_iface); break; case VMR9Mode_Renderless: break;
participants (1)
-
Alexandre Julliard