Quellcode durchsuchen

Merge pull request #105082 from Delsin-Yu/dotnet-signalawaiter-alloc-opt

[.Net] Avoid array allocation when signal have 0 arg
Thaddeus Crews vor 5 Monaten
Ursprung
Commit
af2c713971
1 geänderte Dateien mit 11 neuen und 4 gelöschten Zeilen
  1. 11 4
      modules/mono/glue/GodotSharp/GodotSharp/Core/SignalAwaiter.cs

+ 11 - 4
modules/mono/glue/GodotSharp/GodotSharp/Core/SignalAwaiter.cs

@@ -48,12 +48,19 @@ namespace Godot
 
 
                 awaiter._completed = true;
                 awaiter._completed = true;
 
 
-                Variant[] signalArgs = new Variant[argCount];
+                if (argCount > 0)
+                {
+                    Variant[] signalArgs = new Variant[argCount];
 
 
-                for (int i = 0; i < argCount; i++)
-                    signalArgs[i] = Variant.CreateCopyingBorrowed(*args[i]);
+                    for (int i = 0; i < argCount; i++)
+                        signalArgs[i] = Variant.CreateCopyingBorrowed(*args[i]);
 
 
-                awaiter._result = signalArgs;
+                    awaiter._result = signalArgs;
+                }
+                else
+                {
+                    awaiter._result = [];
+                }
 
 
                 awaiter._continuation?.Invoke();
                 awaiter._continuation?.Invoke();
             }
             }