changeset 71:12746cf2e447 HEAD

More alignment fixes
author Timo Sirainen <tss@iki.fi>
date Wed, 28 Aug 2002 21:38:04 +0300
parents 0e58a036265e
children c081870db35c
files src/lib/temp-mempool.c
diffstat 1 files changed, 7 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/temp-mempool.c	Wed Aug 28 21:27:47 2002 +0300
+++ b/src/lib/temp-mempool.c	Wed Aug 28 21:38:04 2002 +0300
@@ -48,7 +48,7 @@
 	MemBlock *next;
 
 	unsigned int size, left;
-	unsigned char data[1];
+	/* unsigned char data[]; */
 };
 
 /* current_stack contains last t_push()ed blocks. After that new
@@ -159,7 +159,7 @@
 	prev_size = current_block == NULL ? 0 : current_block->size;
 	alloc_size = nearest_power(prev_size + min_size);
 
-	block = malloc(sizeof(MemBlock)-1 + alloc_size);
+	block = malloc(MEM_ALIGN(sizeof(MemBlock)) + alloc_size);
 	if (block == NULL) {
 		i_panic("mem_block_alloc(): "
 			"Out of memory when allocating %u bytes",
@@ -196,7 +196,7 @@
 
 	if (current_block->left >= size) {
 		/* enough space in current block, use it */
-		ret = current_block->data +
+		ret = (char *) current_block + MEM_ALIGN(sizeof(MemBlock)) +
 			(current_block->size - current_block->left);
                 if (permanent)
 			current_block->left -= size;
@@ -219,7 +219,7 @@
 	current_block->next = block;
 	current_block = block;
 
-        return current_block->data;
+        return (char *) current_block + MEM_ALIGN(sizeof(MemBlock));
 }
 
 void *t_malloc(unsigned int size)
@@ -239,9 +239,9 @@
 int t_try_grow(void *mem, unsigned int size)
 {
 	/* see if we want to grow the memory we allocated last */
-	if (current_block->data + (current_block->size -
-				   current_block->left -
-				   last_alloc_size) == mem) {
+	if ((char *) current_block + MEM_ALIGN(sizeof(MemBlock)) +
+	    (current_block->size - current_block->left -
+	     last_alloc_size) == mem) {
 		/* yeah, see if we can grow */
 		size = MEM_ALIGN(size);
 		if (current_block->left >= size-last_alloc_size) {