Fix memory leak when disposing tilemap
This commit is contained in:
@@ -206,10 +206,24 @@ BzTileMap bzTileMapCreate(const BzTileMapDesc *desc) {
|
||||
void bzTileMapDestroy(BzTileMap *tilemap) {
|
||||
for (i32 i = 0; i < tilemap->layerCount; i++) {
|
||||
BzTileLayer *layer = tilemap->layers + i;
|
||||
bzFree(layer->data);
|
||||
layer->data = NULL;
|
||||
layer->dataCount = 0;
|
||||
if (layer->data) {
|
||||
bzFree(layer->data);
|
||||
layer->data = NULL;
|
||||
layer->dataCount = 0;
|
||||
}
|
||||
}
|
||||
for (i32 i = 0; i < tilemap->objectLayerCount; i++) {
|
||||
BzTileObjectLayer *objectLayer = tilemap->objectLayers + i;
|
||||
if (objectLayer->objects) {
|
||||
bzFree(objectLayer->objects);
|
||||
objectLayer->objects = NULL;
|
||||
objectLayer->objectCount = 0;
|
||||
}
|
||||
}
|
||||
|
||||
bzFree(tilemap->colliderMap);
|
||||
tilemap->collidersCount = 0;
|
||||
|
||||
*tilemap = BZ_TILEMAP_INVALID;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user