Use posix_memalign() if available.
[ffmpeg.git] / libavutil / mem.c
index 960074c..328bef7 100644 (file)
@@ -31,6 +31,7 @@
 #undef free
 #undef realloc
 
+#include <stdlib.h>
 #ifdef HAVE_MALLOC_H
 #include <malloc.h>
 #endif
@@ -41,7 +42,7 @@
 
 void *av_malloc(unsigned int size)
 {
-    void *ptr;
+    void *ptr = NULL;
 #ifdef CONFIG_MEMALIGN_HACK
     long diff;
 #endif
@@ -57,6 +58,8 @@ void *av_malloc(unsigned int size)
     diff= ((-(long)ptr - 1)&15) + 1;
     ptr = (char*)ptr + diff;
     ((char*)ptr)[-1]= diff;
+#elif defined (HAVE_POSIX_MEMALIGN)
+    posix_memalign(&ptr,16,size);
 #elif defined (HAVE_MEMALIGN)
     ptr = memalign(16,size);
     /* Why 64?