Преглед на файлове

[mono] fix signals parameter retrieval

Paul Joannon преди 7 години
родител
ревизия
7a72395412
променени са 1 файла, в които са добавени 7 реда и са изтрити 5 реда
  1. 7 5
      modules/mono/mono_gd/gd_mono_method.cpp

+ 7 - 5
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 {