X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_common.h;h=8e03ed36e31a366d2b924b7e29e94f7f1453fab1;hb=4eebe9d21e0e4dd2fee41ba0b39bb407ac6aa6f8;hp=a127bfd88b75fe8d0002c54579a7383f9c0e6458;hpb=c74a885f7c1e284d9e0a1ef70af7f81a5a0ba7e6;p=vlc diff --git a/include/vlc_common.h b/include/vlc_common.h index a127bfd88b..8e03ed36e3 100644 --- a/include/vlc_common.h +++ b/include/vlc_common.h @@ -76,8 +76,6 @@ #define PRIo64 "llo" #undef PRIx64 #define PRIx64 "llx" - #define snprintf __mingw_snprintf - #define vsnprintf __mingw_vsnprintf #endif /* Function attributes for compiler warnings */ @@ -886,10 +884,37 @@ static inline void SetQWLE (void *p, uint64_t qw) VLC_API bool vlc_ureduce( unsigned *, unsigned *, uint64_t, uint64_t, uint64_t ); /* Aligned memory allocator */ +#ifdef __APPLE__ +#include +#endif + #ifdef WIN32 # include # define vlc_memalign(align, size) (__mingw_aligned_malloc(size, align)) # define vlc_free(base) (__mingw_aligned_free(base)) +#elif defined(__APPLE__) && !defined(MAC_OS_X_VERSION_10_6) +static inline void *vlc_memalign(size_t align, size_t size) +{ + long diff; + void *ptr; + + ptr = malloc(size+align); + if(!ptr) + return ptr; + diff = ((-(long)ptr - 1)&(align-1)) + 1; + ptr = (char*)ptr + diff; + ((char*)ptr)[-1]= diff; + return ptr; +} + +static void vlc_free(void *ptr) +{ + if (ptr) + free((char*)ptr - ((char*)ptr)[-1]); +} +#elif defined(__ANDROID__) +# define vlc_memalign(align, size) memalign(align, size) +# define vlc_free(base) free(base) #else static inline void *vlc_memalign(size_t align, size_t size) {