From e4e92314202b70d2a7092eca6c5b8af7b76d71c9 Mon Sep 17 00:00:00 2001 From: George Marques Date: Thu, 10 Dec 2020 17:12:02 -0300 Subject: Use pointer parameters in Variant function pointers Instead of references. This is needed because those function pointers are used in GDNative which needs to work with plain C, which doesn't support passing parameters by reference. --- core/variant/variant_construct.cpp | 60 +++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 30 deletions(-) (limited to 'core/variant/variant_construct.cpp') diff --git a/core/variant/variant_construct.cpp b/core/variant/variant_construct.cpp index 3bb3fa3634..f4b3a9b8ad 100644 --- a/core/variant/variant_construct.cpp +++ b/core/variant/variant_construct.cpp @@ -69,9 +69,9 @@ public: construct_helper(*VariantGetInternalPtr::get_ptr(&r_ret), p_args, r_error, BuildIndexSequence{}); } - static void validated_construct(Variant &r_ret, const Variant **p_args) { - VariantTypeChanger::change(&r_ret); - validated_construct_helper(*VariantGetInternalPtr::get_ptr(&r_ret), p_args, BuildIndexSequence{}); + static void validated_construct(Variant *r_ret, const Variant **p_args) { + VariantTypeChanger::change(r_ret); + validated_construct_helper(*VariantGetInternalPtr::get_ptr(r_ret), p_args, BuildIndexSequence{}); } static void ptr_construct(void *base, const void **p_args) { ptr_construct_helper(base, p_args, BuildIndexSequence{}); @@ -107,9 +107,9 @@ public: } } - static void validated_construct(Variant &r_ret, const Variant **p_args) { - VariantInternal::clear(&r_ret); - VariantInternal::object_assign(&r_ret, p_args[0]); + static void validated_construct(Variant *r_ret, const Variant **p_args) { + VariantInternal::clear(r_ret); + VariantInternal::object_assign(r_ret, p_args[0]); } static void ptr_construct(void *base, const void **p_args) { PtrToArg::encode(PtrToArg::convert(p_args[0]), base); @@ -141,9 +141,9 @@ public: VariantInternal::object_assign_null(&r_ret); } - static void validated_construct(Variant &r_ret, const Variant **p_args) { - VariantInternal::clear(&r_ret); - VariantInternal::object_assign_null(&r_ret); + static void validated_construct(Variant *r_ret, const Variant **p_args) { + VariantInternal::clear(r_ret); + VariantInternal::object_assign_null(r_ret); } static void ptr_construct(void *base, const void **p_args) { PtrToArg::encode(nullptr, base); @@ -194,9 +194,9 @@ public: *VariantGetInternalPtr::get_ptr(&r_ret) = Callable(object_id, method); } - static void validated_construct(Variant &r_ret, const Variant **p_args) { - VariantTypeChanger::change(&r_ret); - *VariantGetInternalPtr::get_ptr(&r_ret) = Callable(VariantInternal::get_object_id(p_args[0]), *VariantGetInternalPtr::get_ptr(p_args[1])); + static void validated_construct(Variant *r_ret, const Variant **p_args) { + VariantTypeChanger::change(r_ret); + *VariantGetInternalPtr::get_ptr(r_ret) = Callable(VariantInternal::get_object_id(p_args[0]), *VariantGetInternalPtr::get_ptr(p_args[1])); } static void ptr_construct(void *base, const void **p_args) { PtrToArg::encode(Callable(PtrToArg::convert(p_args[0]), PtrToArg::convert(p_args[1])), base); @@ -251,9 +251,9 @@ public: *VariantGetInternalPtr::get_ptr(&r_ret) = Signal(object_id, method); } - static void validated_construct(Variant &r_ret, const Variant **p_args) { - VariantTypeChanger::change(&r_ret); - *VariantGetInternalPtr::get_ptr(&r_ret) = Signal(VariantInternal::get_object_id(p_args[0]), *VariantGetInternalPtr::get_ptr(p_args[1])); + static void validated_construct(Variant *r_ret, const Variant **p_args) { + VariantTypeChanger::change(r_ret); + *VariantGetInternalPtr::get_ptr(r_ret) = Signal(VariantInternal::get_object_id(p_args[0]), *VariantGetInternalPtr::get_ptr(p_args[1])); } static void ptr_construct(void *base, const void **p_args) { PtrToArg::encode(Signal(PtrToArg::convert(p_args[0]), PtrToArg::convert(p_args[1])), base); @@ -298,9 +298,9 @@ public: } } - static void validated_construct(Variant &r_ret, const Variant **p_args) { - VariantTypeChanger::change(&r_ret); - Array &dst_arr = *VariantGetInternalPtr::get_ptr(&r_ret); + static void validated_construct(Variant *r_ret, const Variant **p_args) { + VariantTypeChanger::change(r_ret); + Array &dst_arr = *VariantGetInternalPtr::get_ptr(r_ret); const T &src_arr = *VariantGetInternalPtr::get_ptr(p_args[0]); int size = src_arr.size(); @@ -357,10 +357,10 @@ public: } } - static void validated_construct(Variant &r_ret, const Variant **p_args) { - VariantTypeChanger::change(&r_ret); + static void validated_construct(Variant *r_ret, const Variant **p_args) { + VariantTypeChanger::change(r_ret); const Array &src_arr = *VariantGetInternalPtr::get_ptr(p_args[0]); - T &dst_arr = *VariantGetInternalPtr::get_ptr(&r_ret); + T &dst_arr = *VariantGetInternalPtr::get_ptr(r_ret); int size = src_arr.size(); dst_arr.resize(size); @@ -408,8 +408,8 @@ public: VariantInternal::clear(&r_ret); } - static void validated_construct(Variant &r_ret, const Variant **p_args) { - VariantInternal::clear(&r_ret); + static void validated_construct(Variant *r_ret, const Variant **p_args) { + VariantInternal::clear(r_ret); } static void ptr_construct(void *base, const void **p_args) { PtrToArg::encode(Variant(), base); @@ -436,8 +436,8 @@ public: r_error.error = Callable::CallError::CALL_OK; } - static void validated_construct(Variant &r_ret, const Variant **p_args) { - VariantTypeChanger::change_and_reset(&r_ret); + static void validated_construct(Variant *r_ret, const Variant **p_args) { + VariantTypeChanger::change_and_reset(r_ret); } static void ptr_construct(void *base, const void **p_args) { PtrToArg::encode(T(), base); @@ -463,8 +463,8 @@ public: r_error.error = Callable::CallError::CALL_OK; } - static void validated_construct(Variant &r_ret, const Variant **p_args) { - VariantInternal::clear(&r_ret); + static void validated_construct(Variant *r_ret, const Variant **p_args) { + VariantInternal::clear(r_ret); } static void ptr_construct(void *base, const void **p_args) { ERR_FAIL_MSG("can't ptrcall nil constructor"); @@ -491,9 +491,9 @@ public: r_error.error = Callable::CallError::CALL_OK; } - static void validated_construct(Variant &r_ret, const Variant **p_args) { - VariantInternal::clear(&r_ret); - VariantInternal::object_assign_null(&r_ret); + static void validated_construct(Variant *r_ret, const Variant **p_args) { + VariantInternal::clear(r_ret); + VariantInternal::object_assign_null(r_ret); } static void ptr_construct(void *base, const void **p_args) { PtrToArg::encode(nullptr, base); -- cgit v1.2.3