MEM_alloc allocated in units of 8 for 32 bits systems, and units of 4 for
authorTon Roosendaal <ton@blender.org>
Sun, 21 Aug 2005 10:05:50 +0000 (10:05 +0000)
committerTon Roosendaal <ton@blender.org>
Sun, 21 Aug 2005 10:05:50 +0000 (10:05 +0000)
64 bits systems... weird bug. :)
It now only does a unit-of-4 check, for all systems. This will work fine,
since the malloc code will return aligned anyway, and the guarded alloc
system only stores ints in the headers. Also, the sizeof() call will
correctly do padding, so there's no risk of allocating too small blocks.

intern/guardedalloc/intern/mallocn.c

index 1b1b94379660478516c6a2dc05fc5de548e768a9..cae1e3f05b523a89ac877503f45f8e941c48a2eb 100644 (file)
@@ -193,10 +193,7 @@ void *MEM_mallocN(unsigned int len, char *str)
        MemHead *memh;
        MemTail *memt;
 
-       if(sizeof(long)==8)
-               len = (len + 3 ) & ~3;  /* eenheden van 4 */
-       else 
-               len = (len + 7 ) & ~7;  /* eenheden van 8 */
+       len = (len + 3 ) & ~3;  /* allocate in units of 4 */
        
        memh= (MemHead *)malloc(len+sizeof(MemHead)+sizeof(MemTail));
 
@@ -227,10 +224,7 @@ void *MEM_callocN(unsigned int len, char *str)
        MemHead *memh;
        MemTail *memt;
 
-       if(sizeof(long)==8)
-               len = (len + 3 ) & ~3;  /* eenheden van 4 */
-       else 
-               len = (len + 7 ) & ~7;  /* eenheden van 8 */
+       len = (len + 3 ) & ~3;  /* allocate in units of 4 */
 
        memh= (MemHead *)calloc(len+sizeof(MemHead)+sizeof(MemTail),1);