mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-15 06:31:03 +00:00
mfplay: Fix leaks on error paths (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
f2bb763c9c
commit
b676f14865
|
@ -1024,6 +1024,15 @@ static HRESULT media_player_create_item_from_url(struct media_player *player,
|
||||||
IUnknown *object;
|
IUnknown *object;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
|
if (sync && !ret)
|
||||||
|
return E_POINTER;
|
||||||
|
|
||||||
|
if (!sync && !player->callback)
|
||||||
|
{
|
||||||
|
WARN("Asynchronous item creation is not supported without user callback.\n");
|
||||||
|
return MF_E_INVALIDREQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
if (FAILED(hr = create_media_item(&player->IMFPMediaPlayer_iface, user_data, &item)))
|
if (FAILED(hr = create_media_item(&player->IMFPMediaPlayer_iface, user_data, &item)))
|
||||||
return hr;
|
return hr;
|
||||||
|
|
||||||
|
@ -1035,9 +1044,6 @@ static HRESULT media_player_create_item_from_url(struct media_player *player,
|
||||||
|
|
||||||
if (sync)
|
if (sync)
|
||||||
{
|
{
|
||||||
if (!ret)
|
|
||||||
return E_POINTER;
|
|
||||||
|
|
||||||
*ret = NULL;
|
*ret = NULL;
|
||||||
|
|
||||||
if (SUCCEEDED(hr = IMFSourceResolver_CreateObjectFromURL(player->resolver, url, MF_RESOLUTION_MEDIASOURCE,
|
if (SUCCEEDED(hr = IMFSourceResolver_CreateObjectFromURL(player->resolver, url, MF_RESOLUTION_MEDIASOURCE,
|
||||||
|
@ -1054,17 +1060,9 @@ static HRESULT media_player_create_item_from_url(struct media_player *player,
|
||||||
}
|
}
|
||||||
|
|
||||||
IMFPMediaItem_Release(&item->IMFPMediaItem_iface);
|
IMFPMediaItem_Release(&item->IMFPMediaItem_iface);
|
||||||
|
|
||||||
return hr;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!player->callback)
|
|
||||||
{
|
|
||||||
WARN("Asynchronous item creation is not supported without user callback.\n");
|
|
||||||
return MF_E_INVALIDREQUEST;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ret) *ret = NULL;
|
if (ret) *ret = NULL;
|
||||||
|
|
||||||
hr = IMFSourceResolver_BeginCreateObjectFromURL(player->resolver, url, MF_RESOLUTION_MEDIASOURCE,
|
hr = IMFSourceResolver_BeginCreateObjectFromURL(player->resolver, url, MF_RESOLUTION_MEDIASOURCE,
|
||||||
|
|
Loading…
Reference in a new issue