X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavutil%2Fmem.c;h=8ec226b17aee2cb57e873ed83bc12f175ce244aa;hb=50bfd547b9565bda7c282d280884ed0fd4e0fe9d;hp=de22ad8db85fd67bce12990d83bca46a2633456b;hpb=dfa07e89289b25d44b6f2b959130077913921e0a;p=ffmpeg diff --git a/libavutil/mem.c b/libavutil/mem.c index de22ad8db85..8ec226b17ae 100644 --- a/libavutil/mem.c +++ b/libavutil/mem.c @@ -94,6 +94,8 @@ void *av_malloc(size_t size) if (size) //OS X on SDK 10.6 has a broken posix_memalign implementation if (posix_memalign(&ptr,ALIGN,size)) ptr = NULL; +#elif HAVE_ALIGNED_MALLOC + ptr = _aligned_malloc(size, ALIGN); #elif HAVE_MEMALIGN ptr = memalign(ALIGN,size); /* Why 64? @@ -123,8 +125,14 @@ void *av_malloc(size_t size) #else ptr = malloc(size); #endif - if(!ptr && !size) + if(!ptr && !size) { + size = 1; ptr= av_malloc(1); + } +#if CONFIG_MEMORY_POISONING + if (ptr) + memset(ptr, 0x2a, size); +#endif return ptr; } @@ -145,6 +153,8 @@ void *av_realloc(void *ptr, size_t size) ptr= realloc((char*)ptr - diff, size + diff); if(ptr) ptr = (char*)ptr + diff; return ptr; +#elif HAVE_ALIGNED_MALLOC + return _aligned_realloc(ptr, size + !size, ALIGN); #else return realloc(ptr, size + !size); #endif @@ -170,6 +180,8 @@ void av_free(void *ptr) #if CONFIG_MEMALIGN_HACK if (ptr) free((char*)ptr - ((char*)ptr)[-1]); +#elif HAVE_ALIGNED_MALLOC + _aligned_free(ptr); #else free(ptr); #endif