From 805f9b27396a9ae2495c026fe07e567fde24e4bb Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Sat, 15 Mar 2025 12:41:48 +0200 Subject: [PATCH] Always check pool relationships when a new pool is created --- source/game/pool.cpp | 6 +----- source/game/pool.h | 7 +++++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/source/game/pool.cpp b/source/game/pool.cpp index 2a61f2d..36b3b11 100644 --- a/source/game/pool.cpp +++ b/source/game/pool.cpp @@ -15,10 +15,6 @@ unsigned PoolPool::get_next_id() void PoolPool::check_types() { - unsigned g = reflector.get_generation(); - if(g==reflector_gen) - return; - for(const auto &p: pools) { const Reflection::ClassBase *type = &p->get_reflected_type(); @@ -42,7 +38,7 @@ void PoolPool::check_types() p->set_parent_pool(*parent); } - reflector_gen = g; + reflector_gen = reflector.get_generation(); } diff --git a/source/game/pool.h b/source/game/pool.h index 98c5229..b734852 100644 --- a/source/game/pool.h +++ b/source/game/pool.h @@ -118,9 +118,12 @@ inline Pool &PoolPool::get_pool() std::unique_ptr &ptr = pools[id]; if(!ptr) + { ptr = std::make_unique>(reflector); - - check_types(); + check_types(); + } + else if(reflector.get_generation()!=reflector_gen) + check_types(); return *static_cast *>(ptr.get()); } -- 2.45.2