[Ffmpeg-cvslog] CVS: ffmpeg/libavcodec bitstream.h,1.155,1.156

Erik Slagter erik
Thu Sep 22 11:50:31 CEST 2005


On Thu, 2005-09-22 at 10:35 +0200, Michel Bardiaux wrote:
> >> static inline void init_put_bits(PutBitContext *s, uint8_t *buffer, int buffer_size)
> >> {
> >>-    if(buffer_size < 0)
> >>-        buffer= buffer_size= 0;

> > Can you explain how either of these involves a pointer to integer
> > cast? IMO the old versions were fine.

> buffer= buffer_size= 0;
> 
> means
> 
> buffer=(buffer_size=0);
> 
> (buffer_size=0) evaluates to an integer expression, which generally may 
> not be cast to a pointer without an explicit cast.
> 
> Of course, the compiler *could* notice that that expression evaluates to 
> a constant which is necessarily zero, which it could cast to NULL then 
> to pointer, without warning. But all that means is that one could debate 
> whether *suppressing* the warning here is legitimate. Keeping it always 
> will be legit.

Common pitfal... "0" is either an integer or a pointer in C, depending
on what's needed. So it's never an error (or even a warning) to assign 0
to a pointer. So imho the eaky NULL is almost never needed, in case you
write (type *)0, you don't ever need it.

But I guess we've had this discussion before...
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 2115 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/attachments/20050922/26fe6d2d/attachment.bin>



More information about the ffmpeg-cvslog mailing list