Fix memory leak when disposing tilemap

This commit is contained in:
2023-11-09 11:14:25 +01:00
parent af3a911f88
commit 5e3fe618e3

View File

@@ -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;
}