From 0a7c36af5431bc86e8e4a53e652002acd0079ffa Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Thu, 17 Aug 2006 08:18:48 +0000 Subject: [PATCH] revert aligned realloc() changesm this should be identical to r5784 Originally committed as revision 6008 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavutil/mem.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/libavutil/mem.c b/libavutil/mem.c index cdfefd60550..440328b7f1d 100644 --- a/libavutil/mem.c +++ b/libavutil/mem.c @@ -50,7 +50,7 @@ void *av_malloc(unsigned int size) #endif /* let's disallow possible ambiguous cases */ - if(size > (INT_MAX-16) || !size) + if(size > (INT_MAX-16) ) return NULL; #ifdef MEMALIGN_HACK @@ -101,26 +101,22 @@ void *av_malloc(unsigned int size) */ void *av_realloc(void *ptr, unsigned int size) { - void *ptr2; +#ifdef MEMALIGN_HACK + int diff; +#endif /* let's disallow possible ambiguous cases */ if(size > (INT_MAX-16) ) return NULL; -#ifndef MEMALIGN_HACK - ptr= realloc(ptr, size); -assert(((int)((void*)0)&15) == 0); //for the null pointer pedants - if(!((int)ptr&15)) - return ptr; +#ifdef 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 realloc(ptr - diff, size + diff) + diff; +#else + return realloc(ptr, size); #endif - - ptr2= av_malloc(size); - if(ptr && ptr2) - memcpy(ptr2, ptr, size); - if(ptr2 || !size) - av_free(ptr); - - return ptr2; } /** -- 2.39.2