[FFmpeg-cvslog] r19742 - trunk/libavutil/internal.h

Måns Rullgård mans
Sun Aug 30 00:44:29 CEST 2009


ramiro <subversion at mplayerhq.hu> writes:

> Author: ramiro
> Date: Sun Aug 30 00:38:48 2009
> New Revision: 19742
>
> Log:
> Add CHECKED_ALLOC macro.
> It works the same as CHECKED_ALLOCZ except that it does not zero the allocated
> memory.
>
> Modified:
>    trunk/libavutil/internal.h
>
> Modified: trunk/libavutil/internal.h
> ==============================================================================
> --- trunk/libavutil/internal.h	Sat Aug 29 23:04:18 2009	(r19741)
> +++ trunk/libavutil/internal.h	Sun Aug 30 00:38:48 2009	(r19742)
> @@ -249,6 +249,15 @@ if((y)<(x)){\
>  #define perror please_use_av_log_instead_of_perror
>  #endif
>
> +#define CHECKED_ALLOC(p, size)\
> +{\
> +    p= av_malloc(size);\
> +    if(p==NULL && (size)!=0){\
> +        av_log(NULL, AV_LOG_ERROR, "Cannot allocate memory.");\
> +        goto fail;\
> +    }\
> +}

Looks like I missed some discussions...  This should be wrapped in
do { } while(0) so if (foo) CHECKED_ALLOC(); else blah; can work.  It
would also be nice if the label to goto were an argument.  As it is,
you can only have one target per function that uses the macro.
Finally, it could do with some beautifying, but that's secondary.

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-cvslog mailing list