memory allocator. You do not need to suppress this file because the
linker will do it automatically. */
-#define MAX_MALLOC_SIZE INT_MAX
+static size_t max_alloc_size= INT_MAX;
+
+void av_max_alloc(size_t max){
+ max_alloc_size = max;
+}
void *av_malloc(size_t size)
{
#endif
/* let's disallow possible ambiguous cases */
- if (size > (MAX_MALLOC_SIZE-32))
+ if (size > (max_alloc_size-32))
return NULL;
#if CONFIG_MEMALIGN_HACK
ptr = (char*)ptr + diff;
((char*)ptr)[-1]= diff;
#elif HAVE_POSIX_MEMALIGN
- if (size) //OSX on SDK 10.6 has a broken posix_memalign implementation
+ if (size) //OS X on SDK 10.6 has a broken posix_memalign implementation
if (posix_memalign(&ptr,ALIGN,size))
ptr = NULL;
#elif HAVE_MEMALIGN
#endif
/* let's disallow possible ambiguous cases */
- if (size > (MAX_MALLOC_SIZE-16))
+ if (size > (max_alloc_size-32))
return NULL;
#if CONFIG_MEMALIGN_HACK
//FIXME this isn't aligned correctly, though it probably isn't needed
if(!ptr) return av_malloc(size);
diff= ((char*)ptr)[-1];
- return (char*)realloc((char*)ptr - diff, size + diff) + diff;
+ ptr= realloc((char*)ptr - diff, size + diff);
+ if(ptr) ptr = (char*)ptr + diff;
+ return ptr;
#else
return realloc(ptr, size + !size);
#endif