Преглед изворни кода

meta: check type when assigning a meta container

Michele Caini пре 2 година
родитељ
комит
9b5910547f
1 измењених фајлова са 3 додато и 0 уклоњено
  1. 3 0
      src/entt/meta/meta.hpp

+ 3 - 0
src/entt/meta/meta.hpp

@@ -50,6 +50,7 @@ public:
      */
     template<typename Type>
     void rebind(any instance) noexcept {
+        ENTT_ASSERT(instance.type() == type_id<Type>(), "Unexpected type");
         value_type_node = &internal::resolve<typename Type::value_type>;
         size_fn = &meta_sequence_container_traits<Type>::size;
         resize_fn = &meta_sequence_container_traits<Type>::resize;
@@ -103,6 +104,8 @@ public:
      */
     template<typename Type>
     void rebind(any instance) noexcept {
+        ENTT_ASSERT(instance.type() == type_id<Type>(), "Unexpected type");
+
         if constexpr(!meta_associative_container_traits<Type>::key_only) {
             mapped_type_node = &internal::resolve<typename Type::mapped_type>;
         }