--- a/engine.c Sat Oct 28 11:02:37 2006 +0000
+++ b/engine.c Sat Oct 28 11:08:52 2006 +0000
@@ -450,13 +450,9 @@
* Engine Replacement stuff
************************************************************************/
-static void EngineRenewPoolNewBlock(uint start_item); /* Forward declare for initializer of _engine_renew_pool */
-enum {
- ENGINE_RENEW_POOL_BLOCK_SIZE_BITS = 3,
- ENGINE_RENEW_POOL_MAX_BLOCKS = 8000,
-};
+static void EngineRenewPoolNewBlock(uint start_item);
-MemoryPool _engine_renew_pool = { "EngineRe", ENGINE_RENEW_POOL_MAX_BLOCKS, ENGINE_RENEW_POOL_BLOCK_SIZE_BITS, sizeof(EngineRenew), &EngineRenewPoolNewBlock, NULL, 0, 0, NULL };
+DEFINE_POOL(EngineRenew, EngineRenew, EngineRenewPoolNewBlock, NULL)
static void EngineRenewPoolNewBlock(uint start_item)
{
@@ -464,7 +460,7 @@
/* We don't use FOR_ALL here, because FOR_ALL skips invalid items.
* TODO - This is just a temporary stage, this will be removed. */
- for (er = GetEngineRenew(start_item); er != NULL; er = (er->index + 1 < GetEngineRenewPoolSize()) ? GetEngineRenew(er->index + 1) : NULL) {
+ for (er = GetEngineRenew(start_item); er != NULL; er = (er->index + 1U < GetEngineRenewPoolSize()) ? GetEngineRenew(er->index + 1U) : NULL) {
er->index = start_item++;
er->from = INVALID_ENGINE;
}
@@ -477,7 +473,7 @@
/* We don't use FOR_ALL here, because FOR_ALL skips invalid items.
* TODO - This is just a temporary stage, this will be removed. */
- for (er = GetEngineRenew(0); er != NULL; er = (er->index + 1 < GetEngineRenewPoolSize()) ? GetEngineRenew(er->index + 1) : NULL) {
+ for (er = GetEngineRenew(0); er != NULL; er = (er->index + 1U < GetEngineRenewPoolSize()) ? GetEngineRenew(er->index + 1U) : NULL) {
if (IsValidEngineRenew(er)) continue;
er->to = INVALID_ENGINE;
@@ -486,7 +482,7 @@
}
/* Check if we can add a block to the pool */
- if (AddBlockToPool(&_engine_renew_pool)) return AllocateEngineRenew();
+ if (AddBlockToPool(&_EngineRenew_pool)) return AllocateEngineRenew();
return NULL;
}
@@ -603,7 +599,7 @@
while ((index = SlIterateArray()) != -1) {
EngineRenew *er;
- if (!AddBlockIfNeeded(&_engine_renew_pool, index))
+ if (!AddBlockIfNeeded(&_EngineRenew_pool, index))
error("EngineRenews: failed loading savegame: too many EngineRenews");
er = GetEngineRenew(index);
@@ -670,6 +666,6 @@
void InitializeEngines(void)
{
/* Clean the engine renew pool and create 1 block in it */
- CleanPool(&_engine_renew_pool);
- AddBlockToPool(&_engine_renew_pool);
+ CleanPool(&_EngineRenew_pool);
+ AddBlockToPool(&_EngineRenew_pool);
}
--- a/engine.h Sat Oct 28 11:02:37 2006 +0000
+++ b/engine.h Sat Oct 28 11:08:52 2006 +0000
@@ -236,15 +236,7 @@
* placed here so the only exception to this rule, the saveload code, can use
* it.
*/
-extern MemoryPool _engine_renew_pool;
-
-/**
- * Get the current size of the EngineRenewPool
- */
-static inline uint16 GetEngineRenewPoolSize(void)
-{
- return _engine_renew_pool.total_items;
-}
+DECLARE_POOL(EngineRenew, EngineRenew, 3, 8000)
/**
* Check if a EngineRenew really exists.
@@ -259,19 +251,9 @@
er->from = INVALID_ENGINE;
}
-#define FOR_ALL_ENGINE_RENEWS_FROM(er, start) for (er = GetEngineRenew(start); er != NULL; er = (er->index + 1 < GetEngineRenewPoolSize()) ? GetEngineRenew(er->index + 1) : NULL) if (er->from != INVALID_ENGINE) if (IsValidEngineRenew(er))
+#define FOR_ALL_ENGINE_RENEWS_FROM(er, start) for (er = GetEngineRenew(start); er != NULL; er = (er->index + 1U < GetEngineRenewPoolSize()) ? GetEngineRenew(er->index + 1U) : NULL) if (er->from != INVALID_ENGINE) if (IsValidEngineRenew(er))
#define FOR_ALL_ENGINE_RENEWS(er) FOR_ALL_ENGINE_RENEWS_FROM(er, 0)
-/**
- * DO NOT USE outside of engine.c. Is
- * placed here so the only exception to this rule, the saveload code, can use
- * it.
- */
-static inline EngineRenew *GetEngineRenew(uint16 index)
-{
- return (EngineRenew*)GetItemFromPool(&_engine_renew_pool, index);
-}
-
/**
* A list to group EngineRenew directives together (such as per-player).
--- a/saveload.c Sat Oct 28 11:02:37 2006 +0000
+++ b/saveload.c Sat Oct 28 11:08:52 2006 +0000
@@ -1273,7 +1273,7 @@
return GetRoadStop(index);
}
case REF_ENGINE_RENEWS: {
- if (!AddBlockIfNeeded(&_engine_renew_pool, index))
+ if (!AddBlockIfNeeded(&_EngineRenew_pool, index))
error("EngineRenews: failed loading savegame: too many EngineRenews");
return GetEngineRenew(index);
}