diff options
author | Måns Rullgård <mans@mansr.com> | 2010-01-28 13:06:31 +0000 |
---|---|---|
committer | Måns Rullgård <mans@mansr.com> | 2010-01-28 13:06:31 +0000 |
commit | 4ae406856f5cebe02f2c9ce85719c392bbc2d9bb (patch) | |
tree | 62ac476a827ff979b4eb9810e667edc239b2ea21 | |
parent | e9ca315dd188c38621c9439ef813d1cdf846ce1d (diff) | |
download | ffmpeg-4ae406856f5cebe02f2c9ce85719c392bbc2d9bb.tar.gz |
Add --malloc-prefix to apply a prefix to malloc, free etc
This makes it easy to use a replacement allocator instead of the
system default one.
Originally committed as revision 21509 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rwxr-xr-x | configure | 9 | ||||
-rw-r--r-- | libavutil/mem.c | 17 |
2 files changed, 24 insertions, 2 deletions
@@ -231,6 +231,7 @@ Advanced options (experts only): --disable-vis disable VIS optimizations --disable-yasm disable use of yasm assembler --enable-pic build position-independent code + --malloc-prefix=PFX prefix malloc and related names with PFX Developer options (useful when working on FFmpeg itself): --disable-debug disable debugging symbols @@ -1108,6 +1109,7 @@ CMDLINE_SET=" host_os ld logfile + malloc_prefix nm source_path sysinclude @@ -2438,9 +2440,9 @@ check_func gethrtime check_func getrusage check_func inet_aton $network_extralibs check_func isatty -check_func memalign +check_func ${malloc_prefix}memalign && enable memalign check_func mkstemp -check_func posix_memalign +check_func ${malloc_prefix}posix_memalign && enable posix_memalign check_func_headers io.h setmode check_func_headers lzo/lzo1x.h lzo1x_999_compress check_func_headers windows.h GetProcessTimes @@ -2978,6 +2980,9 @@ cat > $TMPH <<EOF #define EXTERN_ASM ${extern_prefix} EOF +test -n "$malloc_prefix" && + echo "#define MALLOC_PREFIX $malloc_prefix" >>$TMPH + if enabled small || disabled optimizations; then echo "#define av_always_inline" >> $TMPH fi diff --git a/libavutil/mem.c b/libavutil/mem.c index 741450b53f..4d776d4450 100644 --- a/libavutil/mem.c +++ b/libavutil/mem.c @@ -33,6 +33,7 @@ #include <malloc.h> #endif +#include "avutil.h" #include "mem.h" /* here we can use OS-dependent allocation functions */ @@ -40,6 +41,22 @@ #undef malloc #undef realloc +#ifdef MALLOC_PREFIX + +#define malloc AV_JOIN(MALLOC_PREFIX, malloc) +#define memalign AV_JOIN(MALLOC_PREFIX, memalign) +#define posix_memalign AV_JOIN(MALLOC_PREFIX, posix_memalign) +#define realloc AV_JOIN(MALLOC_PREFIX, realloc) +#define free AV_JOIN(MALLOC_PREFIX, free) + +void *malloc(size_t size); +void *memalign(size_t align, size_t size); +int posix_memalign(void **ptr, size_t align, size_t size); +void *realloc(void *ptr, size_t size); +void free(void *ptr); + +#endif /* MALLOC_PREFIX */ + /* You can redefine av_malloc and av_free in your project to use your memory allocator. You do not need to suppress this file because the linker will do it automatically. */ |