changeset 1350:68544dbee475 HEAD

p_clear() left only the smallest block, not the largest block
author Timo Sirainen <tss@iki.fi>
date Fri, 11 Apr 2003 01:37:01 +0300
parents 3bd74a1326c9
children 6709d9330885
files src/lib/mempool-alloconly.c
diffstat 1 files changed, 4 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/mempool-alloconly.c	Fri Apr 11 00:19:56 2003 +0300
+++ b/src/lib/mempool-alloconly.c	Fri Apr 11 01:37:01 2003 +0300
@@ -240,10 +240,10 @@
 	struct alloconly_pool *apool = (struct alloconly_pool *) pool;
 	struct pool_block *block;
 
-	/* destroy all blocks but the last, which is the largest */
+	/* destroy all blocks but the first, which is the largest */
 	while (apool->block->prev != NULL) {
-		block = apool->block;
-		apool->block = block->prev;
+		block = apool->block->prev;
+		apool->block->prev = block->prev;
 
 #ifdef DEBUG
 		memset(block, 0xde, SIZEOF_POOLBLOCK + block->size);
@@ -251,7 +251,7 @@
 		free(block);
 	}
 
-	/* clear the last block */
+	/* clear the block */
 	memset(POOL_BLOCK_DATA(apool->block), 0,
 	       apool->block->size - apool->block->left);
 	apool->block->left = apool->block->size;