Răsfoiți Sursa

snapshot: avoid unnecessary lookups

Michele Caini 3 ani în urmă
părinte
comite
bda52701f5
1 a modificat fișierele cu 4 adăugiri și 3 ștergeri
  1. 4 3
      src/entt/entity/snapshot.hpp

+ 4 - 3
src/entt/entity/snapshot.hpp

@@ -86,13 +86,14 @@ public:
      */
     template<typename Archive>
     const basic_snapshot &entities(Archive &archive) const {
-        const auto sz = static_cast<typename traits_type::entity_type>(reg->size());
-        const auto released = static_cast<typename traits_type::entity_type>(reg->released());
+        const auto &storage = reg->template storage<entity_type>();
+        const auto sz = static_cast<typename traits_type::entity_type>(storage.size());
+        const auto released = static_cast<typename traits_type::entity_type>(sz - storage.in_use());
 
         archive(sz);
         archive(released);
 
-        for(auto first = reg->data(), last = first + sz; first != last; ++first) {
+        for(auto first = storage.data(), last = first + sz; first != last; ++first) {
             archive(*first);
         }