Call dtor, because we may have non-POD components

This commit is contained in:
NukeBird 2025-02-18 18:45:49 +03:00
parent f6da840946
commit c7f04c9d21

View file

@ -141,6 +141,13 @@ namespace zecsy
auto& pool = pools[id]; auto& pool = pools[id];
auto index = pool.entity_to_index[e]; auto index = pool.entity_to_index[e];
/*
* T may be non-POD, so I guess I should call a destructor here
*/
auto comp_ptr = reinterpret_cast<T*>(&pool.data[index * sizeof(T)]);
comp_ptr->~T();
pool.free_list.push_back(index); pool.free_list.push_back(index);
pool.entity_to_index.erase(e); pool.entity_to_index.erase(e);
pool.index_to_entity.erase(index); pool.index_to_entity.erase(index);