diff --git a/src/entt/meta/factory.hpp b/src/entt/meta/factory.hpp index c64e651b0..5b99f8b6a 100644 --- a/src/entt/meta/factory.hpp +++ b/src/entt/meta/factory.hpp @@ -127,11 +127,11 @@ protected: } public: - basic_meta_factory(meta_ctx &area, const meta_type_node &node) + basic_meta_factory(meta_ctx &area, meta_type_node node) : ctx{&area}, parent{node.info->hash()}, bucket{parent} { - if(auto &curr = meta_context::from(*ctx).value.try_emplace(parent, node).first->second; curr.details == nullptr) { + if(auto &curr = meta_context::from(*ctx).value.try_emplace(parent, std::move(node)).first->second; curr.details == nullptr) { curr.details = std::make_shared(); } } @@ -167,7 +167,7 @@ public: * @param area The context into which to construct meta types. */ meta_factory(meta_ctx &area) noexcept - : internal::basic_meta_factory{area, internal::resolve(internal::meta_context::from(area))} {} + : internal::basic_meta_factory{area, internal::setup_node_for()} {} /** * @brief Assigns a custom unique identifier to a meta type.