Mercurial > hg > x
changeset 4:92ee28024c05
* Avoid trying to do explicit 32-bit-pointer alignment on 64-bit systems
author | Chris Cannam |
---|---|
date | Tue, 05 Oct 2010 17:03:27 +0100 |
parents | 42c078b19e9a |
children | 5f3c32dc6e17 |
files | align8.cpp |
diffstat | 1 files changed, 10 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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 +