diff options
author | Laurent Aimar <fenrir@videolan.org> | 2011-09-24 18:39:13 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-09-25 00:55:25 +0200 |
commit | ccecab4a0d7f3f4f296551c2e22bbf12af7d14e8 (patch) | |
tree | 8997ff2d09077d60ae4523cdac6127a4fddab89f /libavutil | |
parent | 35cb6854bb76b4a5b6f2aea2dce81e18d7ab61cd (diff) | |
download | ffmpeg-ccecab4a0d7f3f4f296551c2e22bbf12af7d14e8.tar.gz |
Add av_calloc() helper.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavutil')
-rw-r--r-- | libavutil/mem.c | 7 | ||||
-rw-r--r-- | libavutil/mem.h | 12 |
2 files changed, 19 insertions, 0 deletions
diff --git a/libavutil/mem.c b/libavutil/mem.c index 87c2008a27..44bfc8c34d 100644 --- a/libavutil/mem.c +++ b/libavutil/mem.c @@ -168,6 +168,13 @@ void *av_mallocz(size_t size) return ptr; } +void *av_calloc(size_t nmemb, size_t size) +{ + if (size <= 0 || nmemb >= INT_MAX / size) + return NULL; + return av_mallocz(nmemb * size); +} + char *av_strdup(const char *s) { char *ptr= NULL; diff --git a/libavutil/mem.h b/libavutil/mem.h index 8fdf5b3a4d..1711b18658 100644 --- a/libavutil/mem.h +++ b/libavutil/mem.h @@ -107,6 +107,18 @@ void av_free(void *ptr); void *av_mallocz(size_t size) av_malloc_attrib av_alloc_size(1); /** + * Allocate a block of nmemb * size bytes with alignment suitable for all + * memory accesses (including vectors if available on the CPU) and + * zero all the bytes of the block. + * The allocation will fail if nmemb * size is greater than or equal + * to INT_MAX. + * @param nmemb + * @param size + * @return Pointer to the allocated block, NULL if it cannot be allocated. + */ +void *av_calloc(size_t nmemb, size_t size) av_malloc_attrib; + +/** * Duplicate the string s. * @param s string to be duplicated * @return Pointer to a newly allocated string containing a |