From 81eb60434a67aa0ea4bd7254063ad4008947ebfb Mon Sep 17 00:00:00 2001 From: Paul Joannon Date: Wed, 21 Feb 2018 12:50:05 +0100 Subject: [PATCH] [mono] fix signals parameter retrieval (cherry picked from commit 7a723954125e9409c102b5cf3cde6f9a6464be52) --- modules/mono/mono_gd/gd_mono_method.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/modules/mono/mono_gd/gd_mono_method.cpp b/modules/mono/mono_gd/gd_mono_method.cpp index 69040a3df89..ad529049456 100644 --- a/modules/mono/mono_gd/gd_mono_method.cpp +++ b/modules/mono/mono_gd/gd_mono_method.cpp @@ -230,12 +230,14 @@ String GDMonoMethod::get_signature_desc(bool p_namespaces) const { } void GDMonoMethod::get_parameter_names(Vector &names) const { - const char *_names = memnew_arr(char, params_count); - mono_method_get_param_names(mono_method, &_names); - for (int i = 0; i < params_count; ++i) { - names.push_back(StringName(&_names[i])); + if (params_count > 0) { + const char **_names = memnew_arr(const char *, params_count); + mono_method_get_param_names(mono_method, _names); + for (int i = 0; i < params_count; ++i) { + names.push_back(StringName(_names[i])); + } + memdelete_arr(_names); } - memdelete_arr(_names); } void GDMonoMethod::get_parameter_types(Vector &types) const {