(svn r6155) -Codechange: split Destroy routine from SpriteGroupPoolCleanBlock
authortruelight
Sat, 26 Aug 2006 19:47:13 +0000
changeset 4402 356627e69fc5
parent 4401 ca197fcb332b
child 4403 3f503ac2d0f9
(svn r6155) -Codechange: split Destroy routine from SpriteGroupPoolCleanBlock
Last change is to prepare for new pool system.
newgrf_spritegroup.c
--- a/newgrf_spritegroup.c	Sat Aug 26 19:40:40 2006 +0000
+++ b/newgrf_spritegroup.c	Sat Aug 26 19:47:13 2006 +0000
@@ -16,37 +16,38 @@
 static uint _spritegroup_count = 0;
 static MemoryPool _spritegroup_pool;
 
+void DestroySpriteGroup(SpriteGroup *group)
+{
+	/* Free dynamically allocated memory */
+	switch (group->type) {
+		case SGT_REAL:
+			free(group->g.real.loaded);
+			free(group->g.real.loading);
+			break;
+
+		case SGT_DETERMINISTIC:
+			free(group->g.determ.adjusts);
+			free(group->g.determ.ranges);
+			break;
+
+		case SGT_RANDOMIZED:
+			free(group->g.random.groups);
+			break;
+
+		default:
+			break;
+	}
+}
 
 static void SpriteGroupPoolCleanBlock(uint start_item, uint end_item)
 {
 	uint i;
 
 	for (i = start_item; i <= end_item; i++) {
-		SpriteGroup *group = (SpriteGroup*)GetItemFromPool(&_spritegroup_pool, i);
-
-		/* Free dynamically allocated memory */
-		switch (group->type) {
-			case SGT_REAL:
-				free(group->g.real.loaded);
-				free(group->g.real.loading);
-				break;
-
-			case SGT_DETERMINISTIC:
-				free(group->g.determ.adjusts);
-				free(group->g.determ.ranges);
-				break;
-
-			case SGT_RANDOMIZED:
-				free(group->g.random.groups);
-				break;
-
-			default:
-				break;
-		}
+		DestroySpriteGroup((SpriteGroup*)GetItemFromPool(&_spritegroup_pool, i));
 	}
 }
 
-
 /* Initialize the SpriteGroup pool */
 static MemoryPool _spritegroup_pool = { "SpriteGr", SPRITEGROUP_POOL_MAX_BLOCKS, SPRITEGROUP_POOL_BLOCK_SIZE_BITS, sizeof(SpriteGroup), NULL, &SpriteGroupPoolCleanBlock, 0, 0, NULL };