aboutsummaryrefslogtreecommitdiff
path: root/modules/mono/mono_gd/gd_mono_method.cpp
diff options
context:
space:
mode:
authorPaul Joannon2018-02-21 12:50:05 +0100
committerHein-Pieter van Braam2018-05-16 12:27:45 +0200
commit81eb60434a67aa0ea4bd7254063ad4008947ebfb (patch)
treee3105542384599b10ad068af0619c2aafee7b569 /modules/mono/mono_gd/gd_mono_method.cpp
parent6635f2a1085a85f4195401d27d079a27bd98f3e0 (diff)
downloadgodot-81eb60434a67aa0ea4bd7254063ad4008947ebfb.tar.gz
godot-81eb60434a67aa0ea4bd7254063ad4008947ebfb.tar.zst
godot-81eb60434a67aa0ea4bd7254063ad4008947ebfb.zip
[mono] fix signals parameter retrieval
(cherry picked from commit 7a723954125e9409c102b5cf3cde6f9a6464be52)
Diffstat (limited to '')
-rw-r--r--modules/mono/mono_gd/gd_mono_method.cpp12
1 files 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 69040a3df..ad5290494 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<StringName> &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<ManagedType> &types) const {