Browse Source

meta: reduce symbol size of meta assoc traits ::size function

Michele Caini 2 years ago
parent
commit
b5b4991ae6
2 changed files with 4 additions and 4 deletions
  1. 2 2
      src/entt/meta/container.hpp
  2. 2 2
      src/entt/meta/meta.hpp

+ 2 - 2
src/entt/meta/container.hpp

@@ -101,8 +101,8 @@ struct basic_meta_associative_container_traits {
 
     static constexpr auto key_only = is_key_only_meta_associative_container<Type>::value;
 
-    [[nodiscard]] static size_type size(const any &container) noexcept {
-        return any_cast<const Type &>(container).size();
+    [[nodiscard]] static size_type size(const void *container) noexcept {
+        return static_cast<const Type *>(container)->size();
     }
 
     [[nodiscard]] static bool clear(any &container) {

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

@@ -141,7 +141,7 @@ private:
     internal::meta_type_node (*key_type_node)(const internal::meta_context &){};
     internal::meta_type_node (*mapped_type_node)(const internal::meta_context &){};
     internal::meta_type_node (*value_type_node)(const internal::meta_context &){};
-    size_type (*size_fn)(const any &) noexcept {};
+    size_type (*size_fn)(const void *) noexcept {};
     bool (*clear_fn)(any &){};
     iterator (*iter_fn)(const meta_ctx &, any &, const bool){};
     size_type (*insert_or_erase_fn)(any &, meta_any &, meta_any &){};
@@ -1948,7 +1948,7 @@ inline meta_sequence_container::iterator meta_sequence_container::erase(iterator
 
 /*! @copydoc meta_sequence_container::size */
 [[nodiscard]] inline meta_associative_container::size_type meta_associative_container::size() const noexcept {
-    return size_fn(storage);
+    return size_fn(storage.data());
 }
 
 /*! @copydoc meta_sequence_container::clear */