Browse Source

Fix CSharpInstance::call not initializing CallError

Ignacio Etcheverry 7 năm trước cách đây
mục cha
commit
8c33939ce6
1 tập tin đã thay đổi với 7 bổ sung2 xóa
  1. 7 2
      modules/mono/csharp_script.cpp

+ 7 - 2
modules/mono/csharp_script.cpp

@@ -1133,10 +1133,13 @@ Variant CSharpInstance::call(const StringName &p_method, const Variant **p_args,
 
 	MonoObject *mono_object = get_mono_object();
 
-	ERR_FAIL_NULL_V(mono_object, Variant());
+	if (!mono_object) {
+		r_error.error = Variant::CallError::CALL_ERROR_INSTANCE_IS_NULL;
+		ERR_FAIL_V(Variant());
+	}
 
 	if (!script.is_valid())
-		return Variant();
+		ERR_FAIL_V(Variant());
 
 	GDMonoClass *top = script->script_class;
 
@@ -1146,6 +1149,8 @@ Variant CSharpInstance::call(const StringName &p_method, const Variant **p_args,
 		if (method) {
 			MonoObject *return_value = method->invoke(mono_object, p_args);
 
+			r_error.error = Variant::CallError::CALL_OK;
+
 			if (return_value) {
 				return GDMonoMarshal::mono_object_to_variant(return_value, method->get_return_type());
 			} else {