# HG changeset patch # User tron # Date 1123969222 0 # Node ID 1c64119d5a3b444e1a88afd6405b4af259428d36 # Parent 8b953706648a7f84a5efb6b8ef5bb72e2b4bdbb2 (svn r2865) Push the responsibility for allocating the sprite heap into GfxInitSpriteMem() diff -r 8b953706648a -r 1c64119d5a3b spritecache.c --- a/spritecache.c Sat Aug 13 21:35:31 2005 +0000 +++ b/spritecache.c Sat Aug 13 21:40:22 2005 +0000 @@ -785,13 +785,13 @@ _compact_cache_counter = 0; } -static void GfxInitSpriteMem(void *ptr, uint32 size) +static void GfxInitSpriteMem(void) { // initialize sprite cache heap - _spritecache_ptr = ptr; + if (_spritecache_ptr == NULL) _spritecache_ptr = malloc(SPRITE_CACHE_SIZE); // A big free block - _spritecache_ptr->size = (size - sizeof(MemBlock)) | S_FREE_MASK; + _spritecache_ptr->size = (SPRITE_CACHE_SIZE - sizeof(MemBlock)) | S_FREE_MASK; // Sentinel block (identified by size == 0) NextBlock(_spritecache_ptr)->size = 0; @@ -801,8 +801,6 @@ void GfxLoadSprites(void) { - static byte *_sprite_mem; - // Need to reload the sprites only if the landscape changed if (_sprite_page_to_load != _opt.landscape) { _sprite_page_to_load = _opt.landscape; @@ -810,9 +808,7 @@ // Sprite cache DEBUG(spritecache, 1) ("Loading sprite set %d.", _sprite_page_to_load); - // Reuse existing memory? - if (_sprite_mem == NULL) _sprite_mem = malloc(SPRITE_CACHE_SIZE); - GfxInitSpriteMem(_sprite_mem, SPRITE_CACHE_SIZE); + GfxInitSpriteMem(); LoadSpriteTables(); GfxInitPalettes(); }