Merge pull request #92800 from raulsntos/dotnet/fix-check-call-error

C#: Skip method name when checking CallError
This commit is contained in:
Rémi Verschelde 2024-06-07 23:30:19 +02:00
commit 7a5fad878b
No known key found for this signature in database
GPG Key ID: C3336907360768E1

View File

@ -143,7 +143,7 @@ namespace Godot.NativeInterop
if (error.Error != godot_variant_call_error_error.GODOT_CALL_ERROR_CALL_OK) if (error.Error != godot_variant_call_error_error.GODOT_CALL_ERROR_CALL_OK)
{ {
using godot_variant instanceVariant = VariantUtils.CreateFromGodotObjectPtr(instance); using godot_variant instanceVariant = VariantUtils.CreateFromGodotObjectPtr(instance);
string where = GetCallErrorWhere(method, &instanceVariant, args, argCount); string where = GetCallErrorWhere(ref error, method, &instanceVariant, args, argCount);
string errorText = GetCallErrorMessage(error, where, args); string errorText = GetCallErrorMessage(error, where, args);
GD.PushError(errorText); GD.PushError(errorText);
} }
@ -161,7 +161,7 @@ namespace Godot.NativeInterop
} }
} }
private unsafe static string GetCallErrorWhere(godot_string_name method, godot_variant* instance, godot_variant** args, int argCount) private unsafe static string GetCallErrorWhere(ref godot_variant_call_error error, godot_string_name method, godot_variant* instance, godot_variant** args, int argCount)
{ {
string? methodstr = null; string? methodstr = null;
string basestr = GetVariantTypeName(instance); string basestr = GetVariantTypeName(instance);
@ -171,6 +171,10 @@ namespace Godot.NativeInterop
if (argCount >= 1) if (argCount >= 1)
{ {
methodstr = VariantUtils.ConvertToString(*args[0]); methodstr = VariantUtils.ConvertToString(*args[0]);
if (error.Error == godot_variant_call_error_error.GODOT_CALL_ERROR_CALL_ERROR_INVALID_ARGUMENT)
{
error.Argument += 1;
}
} }
} }