From 4ae406856f5cebe02f2c9ce85719c392bbc2d9bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5ns=20Rullg=C3=A5rd?= Date: Thu, 28 Jan 2010 13:06:31 +0000 Subject: [PATCH] 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 --- configure | 9 +++++++-- libavutil/mem.c | 17 +++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 28509b4abc..d6739b779f 100755 --- a/configure +++ b/configure @@ -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 <>$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 #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. */