diff --git a/src/entt/entity/sparse_set.hpp b/src/entt/entity/sparse_set.hpp index 854b1b3f9..63dc16171 100644 --- a/src/entt/entity/sparse_set.hpp +++ b/src/entt/entity/sparse_set.hpp @@ -902,13 +902,13 @@ public: /*! @brief Clears a sparse set. */ void clear() { - if(mode == deletion_policy::in_place) { + if(free_list == null) { + try_erase(begin(), size()); + } else { for(auto &&entity: *this) { - // honor the modality and filter all tombstones + // tombstone filter remove(entity); } - } else { - try_erase(begin(), size()); } }