[PATCH 1/5] amstream: Leave critical section on error in MediaStreamFilter::EnumPins.
Zebediah Figura
zfigura at codeweavers.com
Tue Jun 2 10:40:33 CDT 2020
Hello Anton, these patches look mostly good, just a few nitpicks...
On 6/1/20 11:13 PM, Anton Baskanov wrote:
> Signed-off-by: Anton Baskanov <baskanov at gmail.com>
> ---
> dlls/amstream/filter.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/dlls/amstream/filter.c b/dlls/amstream/filter.c
> index fb9b1d9aee..4b5e184f04 100644
> --- a/dlls/amstream/filter.c
> +++ b/dlls/amstream/filter.c
> @@ -364,10 +364,16 @@ static HRESULT WINAPI filter_EnumPins(IMediaStreamFilter *iface, IEnumPins **enu
> EnterCriticalSection(&filter->cs);
>
> if (!enum_pins)
> + {
> + LeaveCriticalSection(&filter->cs);
> return E_POINTER;
> + }
>
> if (!(object = heap_alloc(sizeof(*object))))
> + {
> + LeaveCriticalSection(&filter->cs);
> return E_OUTOFMEMORY;
> + }
This could be simplified a bit by just moving the call to
EnterCriticalSection() down; we don't need to protect these calls.
>
> object->IEnumPins_iface.lpVtbl = &enum_pins_vtbl;
> object->refcount = 1;
> @@ -376,6 +382,7 @@ static HRESULT WINAPI filter_EnumPins(IMediaStreamFilter *iface, IEnumPins **enu
> if (!(object->pins = heap_alloc(filter->nb_streams * sizeof(*object->pins))))
> {
> heap_free(object);
> + LeaveCriticalSection(&filter->cs);
> return E_OUTOFMEMORY;
> }
> for (i = 0; i < filter->nb_streams; ++i)
>
More information about the wine-devel
mailing list