diff --git a/src/entt/entity/registry.hpp b/src/entt/entity/registry.hpp index b41d0c82ee..da8ad0773e 100644 --- a/src/entt/entity/registry.hpp +++ b/src/entt/entity/registry.hpp @@ -950,10 +950,11 @@ class Registry { if(available) { for(auto pos = entities.size(); pos; --pos) { const entity_type curr = pos - 1; - const auto entt = entities[curr] & traits_type::entity_mask; + const auto entity = entities[curr]; + const auto entt = entity & traits_type::entity_mask; if(curr == entt) { - func(entities[curr]); + func(entity); } } } else { @@ -1206,8 +1207,9 @@ class Registry { return (next | (entities[next] & ~traits_type::entity_mask)); }; - raw_fn_type raw = [](const Registry ®istry, component_type component) { - return (component < registry.pools.size() && registry.pools[component]) ? registry.pools[component]->data() : nullptr; + raw_fn_type raw = [](const Registry ®istry, component_type component) -> const entity_type * { + const auto &pools = registry.pools; + return (component < pools.size() && pools[component]) ? pools[component]->data() : nullptr; }; return { *this, seed, available, follow, raw };