[FFmpeg-cvslog] r19742 - trunk/libavutil/internal.h
Michael Niedermayer
michaelni
Wed Sep 2 14:35:42 CEST 2009
On Tue, Sep 01, 2009 at 04:16:36PM +0100, M?ns Rullg?rd wrote:
> Benoit Fouet <benoit.fouet at free.fr> writes:
>
> > On 2009-08-30 00:44, M?ns Rullg?rd wrote:
> >> 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.
> >>
> >
> > it would be cool to be able to pass an avctx too:
> >
> > #define CHECKED_ALLOC(ctx, p, size, label) \
> > do { \
> > p = malloc(size); \
> > if (!p && (size)){ \
> > av_log(ctx, AV_LOG_ERROR, "Cannot allocate memory.\n"); \
> > goto label; \
> > } \
> > } while (0)
>
> While we're at it, shouldn't this have an FF_ prefix like other
> macros?
and i think
FF_ALLOC_OR_GOTO_FAIL(ctx, p, size)
is best
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Dictatorship naturally arises out of democracy, and the most aggravated
form of tyranny and slavery out of the most extreme liberty. -- Plato
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/attachments/20090902/32b03e93/attachment.pgp>
More information about the ffmpeg-cvslog
mailing list