fixes from 64-bit compile

This commit is contained in:
Josh Coalson
2006-11-17 06:52:19 +00:00
parent fef9348d68
commit ab56ef11b8
2 changed files with 13 additions and 7 deletions

View File

@@ -45,7 +45,13 @@ void *FLAC__memory_alloc_aligned(size_t bytes, void **aligned_address)
#ifdef FLAC__ALIGN_MALLOC_DATA
/* align on 32-byte (256-bit) boundary */
x = malloc(bytes+31);
*aligned_address = (void*)(((unsigned)x + 31) & -32);
/* 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;
#else
x = malloc(bytes);
*aligned_address = x;