Merge pull request #107800 from Joy-less/add-ROS-overload-for-Callable.Call

Add `ReadOnlySpan<Variant>` overload for `Callable.Call`
This commit is contained in:
Thaddeus Crews
2025-09-20 13:41:36 -05:00

View File

@ -79,13 +79,19 @@ namespace Godot
private const int VarArgsSpanThreshold = 10;
/// <inheritdoc cref="Call(ReadOnlySpan{Variant})"/>
public Variant Call(params Variant[] args)
{
return Call(args.AsSpan());
}
/// <summary>
/// Calls the method represented by this <see cref="Callable"/>.
/// Arguments can be passed and should match the method's signature.
/// </summary>
/// <param name="args">Arguments that will be passed to the method call.</param>
/// <returns>The value returned by the method.</returns>
public unsafe Variant Call(params Variant[] args)
public unsafe Variant Call(scoped ReadOnlySpan<Variant> args)
{
using godot_callable callable = Marshaling.ConvertCallableToNative(this);
@ -115,12 +121,18 @@ namespace Godot
}
}
/// <inheritdoc cref="CallDeferred(ReadOnlySpan{Variant})"/>
public void CallDeferred(params Variant[] args)
{
CallDeferred(args.AsSpan());
}
/// <summary>
/// Calls the method represented by this <see cref="Callable"/> in deferred mode, i.e. during the idle frame.
/// Arguments can be passed and should match the method's signature.
/// </summary>
/// <param name="args">Arguments that will be passed to the method call.</param>
public unsafe void CallDeferred(params Variant[] args)
public unsafe void CallDeferred(scoped ReadOnlySpan<Variant> args)
{
using godot_callable callable = Marshaling.ConvertCallableToNative(this);