Skip to content

Commit af67fb1

Browse files
committed
Avoid array allocation when signal have 0 arg
1 parent a210fe6 commit af67fb1

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

modules/mono/glue/GodotSharp/GodotSharp/Core/SignalAwaiter.cs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,19 @@ internal static unsafe void SignalCallback(IntPtr awaiterGCHandlePtr, godot_vari
4848

4949
awaiter._completed = true;
5050

51-
Variant[] signalArgs = new Variant[argCount];
51+
if (argCount > 0)
52+
{
53+
Variant[] signalArgs = new Variant[argCount];
5254

53-
for (int i = 0; i < argCount; i++)
54-
signalArgs[i] = Variant.CreateCopyingBorrowed(*args[i]);
55+
for (int i = 0; i < argCount; i++)
56+
signalArgs[i] = Variant.CreateCopyingBorrowed(*args[i]);
5557

56-
awaiter._result = signalArgs;
58+
awaiter._result = signalArgs;
59+
}
60+
else
61+
{
62+
awaiter._result = [];
63+
}
5764

5865
awaiter._continuation?.Invoke();
5966
}

0 commit comments

Comments
 (0)