[FFmpeg-devel] [PATCH] Use intptr_t

Ramiro Polla ramiro.polla
Mon Mar 16 19:33:19 CET 2009


>> diff --git a/libavcodec/atrac3.c b/libavcodec/atrac3.c
>> index 81d25ec..bdb8a8a 100644
>> --- a/libavcodec/atrac3.c
>> +++ b/libavcodec/atrac3.c
>> @@ -230,7 +230,7 @@ static int decode_bytes(const uint8_t* inbuffer, uint8_t* out, int bytes){
>> ? ? ?const uint32_t* buf;
>> ? ? ?uint32_t* obuf = (uint32_t*) out;
>>
>> - ? ?off = (int)((long)inbuffer & 3);
>> + ? ?off = (intptr_t)inbuffer & 3;
>> ? ? ?buf = (const uint32_t*) (inbuffer - off);
>> ? ? ?c = be2me_32((0x537F6103 >> (off*8)) | (0x537F6103 << (32-(off*8))));
>> ? ? ?bytes += 3 + off;
>
> is intptr_t available on all platforms we care about? (its optional per spec
> IIRC)

It's already being used in a few places in FFmpeg, and nobody complained yet.

> i mean int and long are guranteed to be safe and correct
> (at least if they are unsiged), its the compiler that is silly

hmm, the compiler should be able to see that &3 will fit in whatever
int you want, but it doesn't...

Ramiro Polla




More information about the ffmpeg-devel mailing list