Browse Source

meta: decouple meta_func_node and meta_type_node

Michele Caini 3 years ago
parent
commit
9549bb4f4d
3 changed files with 3 additions and 3 deletions
  1. 1 1
      src/entt/meta/factory.hpp
  2. 1 1
      src/entt/meta/meta.hpp
  3. 1 1
      src/entt/meta/node.hpp

+ 1 - 1
src/entt/meta/factory.hpp

@@ -414,7 +414,7 @@ public:
             type_id<type_list_cat_t<type_list<descriptor::return_type>, descriptor::args_type>>().hash(),
             (descriptor::is_const ? internal::meta_traits::is_const : internal::meta_traits::is_none) | (descriptor::is_static ? internal::meta_traits::is_static : internal::meta_traits::is_none),
             descriptor::args_type::size,
-            internal::meta_node<std::conditional_t<std::is_same_v<Policy, as_void_t>, void, std::remove_cv_t<std::remove_reference_t<typename descriptor::return_type>>>>::resolve(),
+            &internal::meta_node<std::conditional_t<std::is_same_v<Policy, as_void_t>, void, std::remove_cv_t<std::remove_reference_t<typename descriptor::return_type>>>>::resolve,
             &meta_arg<typename descriptor::args_type>,
             &meta_invoke<Type, Candidate, Policy>};
 

+ 1 - 1
src/entt/meta/meta.hpp

@@ -1470,7 +1470,7 @@ inline bool meta_any::assign(meta_any &&other) {
 }
 
 [[nodiscard]] inline meta_type meta_func::ret() const noexcept {
-    return node->ret;
+    return node->ret();
 }
 
 [[nodiscard]] inline meta_type meta_data::arg(const size_type index) const noexcept {

+ 1 - 1
src/entt/meta/node.hpp

@@ -89,7 +89,7 @@ struct meta_func_node {
     id_type watermark;
     meta_traits traits;
     size_type arity;
-    meta_type_node *ret;
+    meta_type_node *(*ret)() noexcept;
     meta_type (*arg)(const size_type) noexcept;
     meta_any (*invoke)(meta_handle, meta_any *const);
     dense_map<id_type, meta_prop_node, identity> prop{};