]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
revert aligned realloc() changesm this should be identical to r5784
authormichael <michael@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Thu, 17 Aug 2006 08:18:48 +0000 (08:18 +0000)
committermichael <michael@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Thu, 17 Aug 2006 08:18:48 +0000 (08:18 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@6008 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavutil/mem.c

index cdfefd605502c4c24e96c68b95fc97bdccf4bc66..440328b7f1d5e86095a71166522b7772e8b9ac31 100644 (file)
@@ -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;
 }
 
 /**