sparse_set/registry: avoids UB with sparse_set::clear and component-less registry::clear
This commit is contained in:
@@ -152,7 +152,7 @@ TEST(SparseSet, Remove) {
|
||||
ASSERT_TRUE(set.empty());
|
||||
|
||||
set.insert(std::begin(entities), std::end(entities));
|
||||
set.remove(set.rbegin(), set.rend());
|
||||
set.remove(set.begin(), set.end());
|
||||
|
||||
ASSERT_TRUE(set.empty());
|
||||
|
||||
@@ -171,6 +171,20 @@ TEST(SparseSet, Remove) {
|
||||
ASSERT_EQ(*set.begin(), entt::entity{42});
|
||||
}
|
||||
|
||||
TEST(SparseSet, Clear) {
|
||||
entt::sparse_set set;
|
||||
|
||||
set.emplace(entt::entity{3});
|
||||
set.emplace(entt::entity{42});
|
||||
set.emplace(entt::entity{9});
|
||||
|
||||
ASSERT_FALSE(set.empty());
|
||||
|
||||
set.clear();
|
||||
|
||||
ASSERT_TRUE(set.empty());
|
||||
}
|
||||
|
||||
TEST(SparseSet, Iterator) {
|
||||
using iterator = typename entt::sparse_set::iterator;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user