diff --git a/src/entt/meta/factory.hpp b/src/entt/meta/factory.hpp index bd69ff472..51c2e0e98 100644 --- a/src/entt/meta/factory.hpp +++ b/src/entt/meta/factory.hpp @@ -106,13 +106,13 @@ protected: } } - void prop(const id_type key, meta_prop_node value) { + void prop(meta_prop_node node) { if(bucket == parent) { - details->prop[key] = std::move(value); + details->prop[node.id] = std::move(node); } else if(invoke == nullptr) { - find_member(details->data)->prop[key] = std::move(value); + find_member(details->data)->prop[node.id] = std::move(node); } else { - find_overload()->prop[key] = std::move(value); + find_overload()->prop[node.id] = std::move(node); } } @@ -503,9 +503,9 @@ public: template meta_factory prop(id_type id, [[maybe_unused]] Value &&...value) { if constexpr(sizeof...(Value) == 0u) { - base_type::prop(id, internal::meta_prop_node{&internal::resolve}); + base_type::prop(internal::meta_prop_node{id, &internal::resolve}); } else { - base_type::prop(id, internal::meta_prop_node{&internal::resolve>..., std::make_shared>(std::forward(value))...}); + base_type::prop(internal::meta_prop_node{id, &internal::resolve>..., std::make_shared>(std::forward(value))...}); } return *this; diff --git a/src/entt/meta/node.hpp b/src/entt/meta/node.hpp index c8296b593..983803aae 100644 --- a/src/entt/meta/node.hpp +++ b/src/entt/meta/node.hpp @@ -68,6 +68,7 @@ struct meta_custom_node { }; struct meta_prop_node { + id_type id{}; meta_type_node (*type)(const meta_context &) noexcept {}; std::shared_ptr value{}; };