summaryrefslogtreecommitdiff
path: root/src/oldpool.c
diff options
context:
space:
mode:
authorKUDr <kudr@openttd.org>2007-01-10 18:12:09 +0000
committerKUDr <kudr@openttd.org>2007-01-10 18:12:09 +0000
commite373ea7096c741a8189f7a480863fd21dd6f6be1 (patch)
treed9abc3d9810159441bed9f82a52bd1ee52d770dd /src/oldpool.c
parent001d858b528d78743deaf7dcea46ea8f0736bad9 (diff)
downloadopenttd-e373ea7096c741a8189f7a480863fd21dd6f6be1.tar.xz
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
Diffstat (limited to 'src/oldpool.c')
-rw-r--r--src/oldpool.c86
1 files changed, 0 insertions, 86 deletions
diff --git a/src/oldpool.c b/src/oldpool.c
deleted file mode 100644
index 2b2d188e8..000000000
--- a/src/oldpool.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* $Id$ */
-
-#include "stdafx.h"
-#include "openttd.h"
-#include "debug.h"
-#include "functions.h"
-#include "oldpool.h"
-
-/**
- * Clean a pool in a safe way (does free all blocks)
- */
-void CleanPool(OldMemoryPool *pool)
-{
- uint i;
-
- DEBUG(misc, 4, "[Pool] (%s) cleaning pool..", pool->name);
-
- /* Free all blocks */
- for (i = 0; i < pool->current_blocks; i++) {
- if (pool->clean_block_proc != NULL) {
- pool->clean_block_proc(i * (1 << pool->block_size_bits), (i + 1) * (1 << pool->block_size_bits) - 1);
- }
- free(pool->blocks[i]);
- }
-
- /* Free the block itself */
- free(pool->blocks);
-
- /* Clear up some critical data */
- pool->total_items = 0;
- pool->current_blocks = 0;
- pool->blocks = NULL;
-}
-
-/**
- * This function tries to increase the size of array by adding
- * 1 block too it
- *
- * @return Returns false if the pool could not be increased
- */
-bool AddBlockToPool(OldMemoryPool *pool)
-{
- /* Is the pool at his max? */
- if (pool->max_blocks == pool->current_blocks)
- return false;
-
- pool->total_items = (pool->current_blocks + 1) * (1 << pool->block_size_bits);
-
- DEBUG(misc, 4, "[Pool] (%s) increasing size of pool to %d items (%d bytes)", pool->name, pool->total_items, pool->total_items * pool->item_size);
-
- /* Increase the poolsize */
- pool->blocks = realloc(pool->blocks, sizeof(pool->blocks[0]) * (pool->current_blocks + 1));
- if (pool->blocks == NULL) error("Pool: (%s) could not allocate memory for blocks", pool->name);
-
- /* Allocate memory to the new block item */
- pool->blocks[pool->current_blocks] = malloc(pool->item_size * (1 << pool->block_size_bits));
- if (pool->blocks[pool->current_blocks] == NULL)
- error("Pool: (%s) could not allocate memory for blocks", pool->name);
-
- /* Clean the content of the new block */
- memset(pool->blocks[pool->current_blocks], 0, pool->item_size * (1 << pool->block_size_bits));
-
- /* Call a custom function if defined (e.g. to fill indexes) */
- if (pool->new_block_proc != NULL)
- pool->new_block_proc(pool->current_blocks * (1 << pool->block_size_bits));
-
- /* We have a new block */
- pool->current_blocks++;
-
- return true;
-}
-
-/**
- * Adds blocks to the pool if needed (and possible) till index fits inside the pool
- *
- * @return Returns false if adding failed
- */
-bool AddBlockIfNeeded(OldMemoryPool *pool, uint index)
-{
- while (index >= pool->total_items) {
- if (!AddBlockToPool(pool))
- return false;
- }
-
- return true;
-}