Mercurial > libavutil.hg
changeset 96:7d343463873b libavutil
revert aligned realloc() changesm this should be identical to r5784
author | michael |
---|---|
date | Thu, 17 Aug 2006 08:18:48 +0000 |
parents | a87f3ae8c46f |
children | e57687759aed |
files | mem.c |
diffstat | 1 files changed, 11 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/mem.c Sun Aug 13 21:09:00 2006 +0000 +++ b/mem.c Thu Aug 17 08:18:48 2006 +0000 @@ -50,7 +50,7 @@ #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_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; } /**