diff --git a/src/entt/entity/sparse_set.hpp b/src/entt/entity/sparse_set.hpp index 9f3ec0b10..2ffdf9062 100644 --- a/src/entt/entity/sparse_set.hpp +++ b/src/entt/entity/sparse_set.hpp @@ -294,10 +294,12 @@ protected: /*! @brief Erases all entities of a sparse set. */ virtual void pop_all() { - // suboptimal with few entities, but exploits cache way more with many - for (auto&& elem : sparse) { - for (size_type pos{}; pos < traits_type::page_size; ++pos) { - elem[pos] = null; + if(!packed.empty()) { + // suboptimal with few entities, but exploits cache way more with many + for(auto &&elem: sparse) { + for(size_type pos{}; pos < traits_type::page_size; ++pos) { + elem[pos] = null; + } } }