# HG changeset patch # User Chris Cannam # Date 1286294607 -3600 # Node ID 92ee28024c0576fcfa1858724bf7cf9340dae216 # Parent 42c078b19e9ab6d6ac43e5ea0fdee9b5716a714b * Avoid trying to do explicit 32-bit-pointer alignment on 64-bit systems diff -r 42c078b19e9a -r 92ee28024c05 align8.cpp --- a/align8.cpp Tue Oct 05 16:18:52 2010 +0100 +++ b/align8.cpp Tue Oct 05 17:03:27 2010 +0100 @@ -13,6 +13,7 @@ */ void* malloc8(unsigned size) { +#if (!defined(__SIZEOF_POINTER__) || (__SIZEOF_POINTER__ == 4)) char *buffer, *result; buffer=(char*)malloc(size+8+sizeof(void*)); if(!buffer) return(NULL); @@ -20,6 +21,9 @@ result=&((char*)((unsigned)tmp&0xFFFFFFF8))[8]; ((void**)result)[-1]=buffer; return(result); +#else + return malloc(size); +#endif }//malloc8 /* @@ -29,5 +33,10 @@ */ void free8(void* buffer8) { - if (buffer8) free(((void**)buffer8)[-1]); +#if (!defined(__SIZEOF_POINTER__) || (__SIZEOF_POINTER__ == 4)) + if (buffer8) free(((void**)buffer8)[-1]); +#else + free(buffer8); +#endif }//free8 +