diff options
author | Fengwei Yin <yfw.glibc@gmail.com> | 2014-03-07 09:05:08 +0800 |
---|---|---|
committer | Erik de Castro Lopo <erikd@mega-nerd.com> | 2014-03-14 15:32:50 +1100 |
commit | 7cbecbae9f70be770f7651d09531fec0de6f9cf5 (patch) | |
tree | 202298fad24579eb6f0337106911c52ef74c2f2c /src | |
parent | 163b7340103f8eef1e4f6e0b4770c028ce71bf7c (diff) | |
download | flac-7cbecbae9f70be770f7651d09531fec0de6f9cf5.tar.gz |
Using uintptr_t to simplify pointer handling a little bit
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/libFLAC/memory.c | 23 |
1 files changed, 4 insertions, 19 deletions
diff --git a/src/libFLAC/memory.c b/src/libFLAC/memory.c index a413b8c7..8aecf5f7 100644 --- a/src/libFLAC/memory.c +++ b/src/libFLAC/memory.c @@ -34,6 +34,8 @@ # include <config.h> #endif +#include <stdint.h> + #include "private/memory.h" #include "FLAC/assert.h" #include "share/alloc.h" @@ -46,25 +48,8 @@ void *FLAC__memory_alloc_aligned(size_t bytes, void **aligned_address) #ifdef FLAC__ALIGN_MALLOC_DATA /* align on 32-byte (256-bit) boundary */ - x = safe_malloc_add_2op_(bytes, /*+*/31); -#ifdef SIZEOF_VOIDP -#if SIZEOF_VOIDP == 4 - /* could do *aligned_address = x + ((unsigned) (32 - (((unsigned)x) & 31))) & 31; */ - *aligned_address = (void*)(((unsigned)x + 31) & -32); -#elif SIZEOF_VOIDP == 8 - *aligned_address = (void*)(((FLAC__uint64)x + 31) & (FLAC__uint64)(-((FLAC__int64)32))); -#else -# error Unsupported sizeof(void*) -#endif -#else - /* there's got to be a better way to do this right for all archs */ - if(sizeof(void*) == sizeof(unsigned)) - *aligned_address = (void*)(((unsigned)x + 31) & -32); - else if(sizeof(void*) == sizeof(FLAC__uint64)) - *aligned_address = (void*)(((FLAC__uint64)x + 31) & (FLAC__uint64)(-((FLAC__int64)32))); - else - return 0; -#endif + x = safe_malloc_add_2op_(bytes, /*+*/31L); + *aligned_address = (void*)(((uintptr_t)x + 31L) & -32L); #else x = safe_malloc_(bytes); *aligned_address = x; |