Browse Source

Merge pull request #757 from pooroligarch/master

Rémi Verschelde 3 years ago
parent
commit
eaaf941c10

+ 4 - 4
include/godot_cpp/core/binder_common.hpp

@@ -105,7 +105,7 @@ struct VariantObjectClassChecker<const Ref<T> &> {
 template <class T>
 template <class T>
 struct VariantCasterAndValidate {
 struct VariantCasterAndValidate {
 	static _FORCE_INLINE_ T cast(const Variant **p_args, uint32_t p_arg_idx, GDNativeCallError &r_error) {
 	static _FORCE_INLINE_ T cast(const Variant **p_args, uint32_t p_arg_idx, GDNativeCallError &r_error) {
-		GDNativeVariantType argtype = GetTypeInfo<T>::VARIANT_TYPE;
+		GDNativeVariantType argtype = GDNativeVariantType(GetTypeInfo<T>::VARIANT_TYPE);
 		if (!internal::gdn_interface->variant_can_convert_strict(static_cast<GDNativeVariantType>(p_args[p_arg_idx]->get_type()), argtype) ||
 		if (!internal::gdn_interface->variant_can_convert_strict(static_cast<GDNativeVariantType>(p_args[p_arg_idx]->get_type()), argtype) ||
 				!VariantObjectClassChecker<T>::check(p_args[p_arg_idx])) {
 				!VariantObjectClassChecker<T>::check(p_args[p_arg_idx])) {
 			r_error.error = GDNATIVE_CALL_ERROR_INVALID_ARGUMENT;
 			r_error.error = GDNATIVE_CALL_ERROR_INVALID_ARGUMENT;
@@ -120,7 +120,7 @@ struct VariantCasterAndValidate {
 template <class T>
 template <class T>
 struct VariantCasterAndValidate<T &> {
 struct VariantCasterAndValidate<T &> {
 	static _FORCE_INLINE_ T cast(const Variant **p_args, uint32_t p_arg_idx, GDNativeCallError &r_error) {
 	static _FORCE_INLINE_ T cast(const Variant **p_args, uint32_t p_arg_idx, GDNativeCallError &r_error) {
-		GDNativeVariantType argtype = GetTypeInfo<T>::VARIANT_TYPE;
+		GDNativeVariantType argtype = GDNativeVariantType(GetTypeInfo<T>::VARIANT_TYPE);
 		if (!internal::gdn_interface->variant_can_convert_strict(static_cast<GDNativeVariantType>(p_args[p_arg_idx]->get_type()), argtype) ||
 		if (!internal::gdn_interface->variant_can_convert_strict(static_cast<GDNativeVariantType>(p_args[p_arg_idx]->get_type()), argtype) ||
 				!VariantObjectClassChecker<T>::check(p_args[p_arg_idx])) {
 				!VariantObjectClassChecker<T>::check(p_args[p_arg_idx])) {
 			r_error.error = GDNATIVE_CALL_ERROR_INVALID_ARGUMENT;
 			r_error.error = GDNATIVE_CALL_ERROR_INVALID_ARGUMENT;
@@ -135,7 +135,7 @@ struct VariantCasterAndValidate<T &> {
 template <class T>
 template <class T>
 struct VariantCasterAndValidate<const T &> {
 struct VariantCasterAndValidate<const T &> {
 	static _FORCE_INLINE_ T cast(const Variant **p_args, uint32_t p_arg_idx, GDNativeCallError &r_error) {
 	static _FORCE_INLINE_ T cast(const Variant **p_args, uint32_t p_arg_idx, GDNativeCallError &r_error) {
-		GDNativeVariantType argtype = GetTypeInfo<T>::VARIANT_TYPE;
+		GDNativeVariantType argtype = GDNativeVariantType(GetTypeInfo<T>::VARIANT_TYPE);
 		if (!internal::gdn_interface->variant_can_convert_strict(static_cast<GDNativeVariantType>(p_args[p_arg_idx]->get_type()), argtype) ||
 		if (!internal::gdn_interface->variant_can_convert_strict(static_cast<GDNativeVariantType>(p_args[p_arg_idx]->get_type()), argtype) ||
 				!VariantObjectClassChecker<T>::check(p_args[p_arg_idx])) {
 				!VariantObjectClassChecker<T>::check(p_args[p_arg_idx])) {
 			r_error.error = GDNATIVE_CALL_ERROR_INVALID_ARGUMENT;
 			r_error.error = GDNATIVE_CALL_ERROR_INVALID_ARGUMENT;
@@ -384,7 +384,7 @@ void call_with_variant_args_retc_dv(T *p_instance, R (T::*p_method)(P...) const,
 template <class Q>
 template <class Q>
 void call_get_argument_type_helper(int p_arg, int &index, GDNativeVariantType &type) {
 void call_get_argument_type_helper(int p_arg, int &index, GDNativeVariantType &type) {
 	if (p_arg == index) {
 	if (p_arg == index) {
-		type = GetTypeInfo<Q>::VARIANT_TYPE;
+		type = GDNativeVariantType(GetTypeInfo<Q>::VARIANT_TYPE);
 	}
 	}
 	index++;
 	index++;
 }
 }

+ 3 - 3
include/godot_cpp/core/method_bind.hpp

@@ -431,7 +431,7 @@ protected:
 		if (p_arg >= 0 && p_arg < (int)sizeof...(P)) {
 		if (p_arg >= 0 && p_arg < (int)sizeof...(P)) {
 			return call_get_argument_type<P...>(p_arg);
 			return call_get_argument_type<P...>(p_arg);
 		} else {
 		} else {
-			return GetTypeInfo<R>::VARIANT_TYPE;
+			return GDNativeVariantType(GetTypeInfo<R>::VARIANT_TYPE);
 		}
 		}
 	}
 	}
 
 
@@ -514,7 +514,7 @@ protected:
 		if (p_arg >= 0 && p_arg < (int)sizeof...(P)) {
 		if (p_arg >= 0 && p_arg < (int)sizeof...(P)) {
 			return call_get_argument_type<P...>(p_arg);
 			return call_get_argument_type<P...>(p_arg);
 		} else {
 		} else {
-			return GetTypeInfo<R>::VARIANT_TYPE;
+			return GDNativeVariantType(GetTypeInfo<R>::VARIANT_TYPE);
 		}
 		}
 	}
 	}
 
 
@@ -655,7 +655,7 @@ protected:
 		if (p_arg >= 0 && p_arg < (int)sizeof...(P)) {
 		if (p_arg >= 0 && p_arg < (int)sizeof...(P)) {
 			return call_get_argument_type<P...>(p_arg);
 			return call_get_argument_type<P...>(p_arg);
 		} else {
 		} else {
-			return GetTypeInfo<R>::VARIANT_TYPE;
+			return GDNativeVariantType(GetTypeInfo<R>::VARIANT_TYPE);
 		}
 		}
 	}
 	}