(svn r6155) -Codechange: split Destroy routine from SpriteGroupPoolCleanBlock
Last change is to prepare for new pool system.
This commit is contained in:
		@@ -16,37 +16,38 @@ enum {
 | 
			
		||||
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 };
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user