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
+