Skip to content

Commit

Permalink
view: return the best size for entity storage from size_hint
Browse files Browse the repository at this point in the history
  • Loading branch information
skypjack committed Oct 17, 2024
1 parent 8c4a2f7 commit 68adf86
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 5 deletions.
2 changes: 1 addition & 1 deletion src/entt/entity/view.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ class basic_common_view {
* @return Estimated number of entities iterated by the view.
*/
[[nodiscard]] size_type size_hint() const noexcept {
return (index != Get) ? pools[index]->size() : size_type{};
return (index != Get) ? offset() : size_type{};
}

/**
Expand Down
2 changes: 1 addition & 1 deletion test/entt/entity/registry.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1873,7 +1873,7 @@ TEST(Registry, ExcludeOnlyView) {

registry.destroy(entity[3u]);

ASSERT_EQ(view.size_hint(), 4u);
ASSERT_EQ(view.size_hint(), 3u);
ASSERT_NE(view.begin(), view.end());

ASSERT_EQ(std::distance(view.begin(), view.end()), 1);
Expand Down
6 changes: 3 additions & 3 deletions test/entt/entity/view.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1441,7 +1441,7 @@ TEST(MultiStorageView, StorageEntity) {
ASSERT_EQ(view.front(), entity[1u]);
ASSERT_EQ(view.back(), entity[1u]);

ASSERT_EQ(view.size_hint(), 2u);
ASSERT_EQ(view.size_hint(), 1u);
ASSERT_NE(view.begin(), view.end());

ASSERT_EQ(std::distance(view.begin(), view.end()), 1);
Expand Down Expand Up @@ -1478,7 +1478,7 @@ TEST(MultiStorageView, StorageEntityWithExclude) {
ASSERT_EQ(view.front(), entity[1u]);
ASSERT_EQ(view.back(), entity[1u]);

ASSERT_EQ(view.size_hint(), 3u);
ASSERT_EQ(view.size_hint(), 2u);
ASSERT_NE(view.begin(), view.end());

ASSERT_EQ(std::distance(view.begin(), view.end()), 1);
Expand Down Expand Up @@ -1510,7 +1510,7 @@ TEST(MultiStorageView, StorageEntityExcludeOnly) {
ASSERT_EQ(view.front(), entity[1u]);
ASSERT_EQ(view.back(), entity[1u]);

ASSERT_EQ(view.size_hint(), 3u);
ASSERT_EQ(view.size_hint(), 2u);
ASSERT_NE(view.begin(), view.end());

ASSERT_EQ(std::distance(view.begin(), view.end()), 1);
Expand Down

0 comments on commit 68adf86

Please sign in to comment.