[PATCH 4/6] dlls/quartz: use VIDEOINFOHEADER instead of partially allocated VIDEOINFO structure

Zebediah Figura zfigura at codeweavers.com
Mon Feb 14 12:07:53 CST 2022


On 2/14/22 03:28, Eric Pouech wrote:
> this fixes a couple of GCC11 warnings (-Wbounds)
> 
> Signed-off-by: Eric Pouech <eric.pouech at gmail.com>
> 
> ---
>   dlls/quartz/avidec.c |    9 +++++----
>   1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/dlls/quartz/avidec.c b/dlls/quartz/avidec.c
> index f8660890273..1295e8704df 100644
> --- a/dlls/quartz/avidec.c
> +++ b/dlls/quartz/avidec.c
> @@ -331,7 +331,7 @@ static HRESULT avi_decompressor_source_get_media_type(struct strmbase_pin *iface
>   
>       struct avi_decompressor *filter = impl_from_strmbase_filter(iface->filter);
>       const VIDEOINFOHEADER *sink_format;
> -    VIDEOINFO *format;
> +    VIDEOINFOHEADER *format;
>   
>       if (!filter->sink.pin.peer)
>           return VFW_S_NO_MORE_ITEMS;
> @@ -363,9 +363,10 @@ static HRESULT avi_decompressor_source_get_media_type(struct strmbase_pin *iface
>   
>           if (IsEqualGUID(formats[index].subtype, &MEDIASUBTYPE_RGB565))
>           {
> -            format->dwBitMasks[iRED] = 0xf800;
> -            format->dwBitMasks[iGREEN] = 0x07e0;
> -            format->dwBitMasks[iBLUE] = 0x001f;
> +            DWORD *dwBitMasks = (DWORD *)(format + 1);
> +            dwBitMasks[iRED] = 0xf800;
> +            dwBitMasks[iGREEN] = 0x07e0;
> +            dwBitMasks[iBLUE] = 0x001f;
>               mt->cbFormat = offsetof(VIDEOINFO, dwBitMasks[3]);
>           }
>           else
> 
> 

I don't think this is an improvement.

I also don't get the warning with gcc 11.2.0. How exactly are you 
compiling and with which version?



More information about the wine-devel mailing list