Skip to content
Snippets Groups Projects
Commit ec735292 authored by Alexandre Janniaux's avatar Alexandre Janniaux Committed by Steve Lhomme
Browse files

bitmapinfoheader: fix uninitialized variable warning

After commit 050c31bf, rmask was used as
a sentinel value to initialize the default value of masks.

The check on rmask was removed because the value assigned in that case
in commit 47af51ec because the RGB mask
was always assigned to 0.

But now, there's nothing guaranteeing that the value are correctly
initialized since nothing guarantees that any format will be found.
Since BI_BITFIELDS indicate that a mask is required, we can throw an
error if the fourcc chroma has no mask defined instead. To ensure that
it is correctly signaled in the code for the user and compiler, we also
use the iteration variable instead of a sentinel.

Fix the following warnings:

    In file included from vlc/modules/demux/avi/avi.c:50:
    vlc/modules/demux/avi/bitmapinfoheader.h:324:26: warning: variable 'i_gmask' is used uninitialized whenever 'for' loop exits because its condition is false [-Wsometimes-uninitialized]
            for( size_t i=0; i<ARRAY_SIZE(bitmap_rgb_masks); i++ )
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    vlc/modules/demux/avi/bitmapinfoheader.h:336:35: note: uninitialized use occurs here
            SetDWLE( &p_bmiColors[4], i_gmask );
                                      ^~~~~~~
    vlc/modules/demux/avi/bitmapinfoheader.h:324:26: note: remove the condition if it is always true
            for( size_t i=0; i<ARRAY_SIZE(bitmap_rgb_masks); i++ )
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    vlc/modules/demux/avi/bitmapinfoheader.h:323:37: note: initialize the variable 'i_gmask' to silence this warning
            uint32_t i_rmask = 0,i_gmask,i_bmask, i_amask;
                                        ^
                                         = 0
    vlc/modules/demux/avi/bitmapinfoheader.h:324:26: warning: variable 'i_bmask' is used uninitialized whenever 'for' loop exits because its condition is false [-Wsometimes-uninitialized]
            for( size_t i=0; i<ARRAY_SIZE(bitmap_rgb_masks); i++ )
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    vlc/modules/demux/avi/bitmapinfoheader.h:337:35: note: uninitialized use occurs here
            SetDWLE( &p_bmiColors[8], i_bmask );
                                      ^~~~~~~
    vlc/modules/demux/avi/bitmapinfoheader.h:324:26: note: remove the condition if it is always true
            for( size_t i=0; i<ARRAY_SIZE(bitmap_rgb_masks); i++ )
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    vlc/modules/demux/avi/bitmapinfoheader.h:323:45: note: initialize the variable 'i_bmask' to silence this warning
            uint32_t i_rmask = 0,i_gmask,i_bmask, i_amask;
                                                ^
                                                 = 0
parent faaef959
No related branches found
No related tags found
Loading
Pipeline #425326 passed with stage
in 24 minutes and 10 seconds
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment