[Ffmpeg-devel] [PATCH] drawtext.c: 01 fix compiler warnings

Måns Rullgård mru
Sat Sep 23 21:09:55 CEST 2006


"Gustavo Sverzut Barbieri" <barbieri at gmail.com> writes:

> On 9/23/06, Rich Felker <dalias at aerifal.cx> wrote:
>> On Sat, Sep 23, 2006 at 01:16:12PM -0300, Gustavo Sverzut Barbieri wrote:
>> > On 9/12/06, Michael Niedermayer <michaelni at gmx.at> wrote:
>> > >Hi
>> > >
>> > >On Sun, Sep 10, 2006 at 02:00:02PM -0300, Gustavo Sverzut Barbieri wrote:
>> > >> This is the first patch of a series of incremental patches to drawtext.c.
>> > >>
>> > >> it fix the compiler warnings found in SVN, it's basically signess of
>> > >> datatypes.
>> > >[...]
>> > >> -  unsigned char *text = ci->text;
>> > >> +  char *text = ci->text;
>> > >[...]
>> > >> +          unsigned char previous = text[i - 1];
>> > >>            FT_Get_Kerning( ci->face,
>> > >> -                          ci->glyphs_index[ text[i-1] ],
>> > >> +                          ci->glyphs_index[previous],
>> > >
>> > >this is ugly IMHO
>> >
>> > so, any other objection? I use "previous" to avoid a cast in order to
>> > avoid compiler warnings.
>>
>> Shouldn't text be unsigned char * anyway?
>> BTW this warning is stupid in most cases but in your case it's not, it
>> actually indicated a bug..
>
> actually, ASCII is just char* (0<= value <128), so it doesn't matter.

C99 uses unqualified char* when defining all the str* functions.  It's
gcc4 that gets a fit if it sees an unsigned char * being passed to a
function taking a char* as argument.

In the quoted patch, the original version was correct, but gave
warnings with gcc4.  Changing the variable 'text' to char* silenced
that warning, but instead created the problem with array indexing.

-- 
M?ns Rullg?rd
mru at inprovide.com




More information about the ffmpeg-devel mailing list