Merge pull request #104689 from Delsin-Yu/csharp-getset-alloc-perf

[.Net] Avoid unnecessary StringName allocations on not implemented virtual _Get and _Set method call
This commit is contained in:
Thaddeus Crews
2025-04-14 19:39:53 -05:00

View File

@ -59,6 +59,11 @@ namespace Godot.Bridge
return godot_bool.True; return godot_bool.True;
} }
if (!godotObject.HasGodotClassMethod(GodotObject.MethodName._Set.NativeValue.DangerousSelfRef))
{
return godot_bool.False;
}
var nameManaged = StringName.CreateTakingOwnershipOfDisposableValue( var nameManaged = StringName.CreateTakingOwnershipOfDisposableValue(
NativeFuncs.godotsharp_string_name_new_copy(CustomUnsafe.AsRef(name))); NativeFuncs.godotsharp_string_name_new_copy(CustomUnsafe.AsRef(name)));
@ -107,6 +112,11 @@ namespace Godot.Bridge
return godot_bool.True; return godot_bool.True;
} }
if (!godotObject.HasGodotClassMethod(GodotObject.MethodName._Get.NativeValue.DangerousSelfRef))
{
return godot_bool.False;
}
var nameManaged = StringName.CreateTakingOwnershipOfDisposableValue( var nameManaged = StringName.CreateTakingOwnershipOfDisposableValue(
NativeFuncs.godotsharp_string_name_new_copy(CustomUnsafe.AsRef(name))); NativeFuncs.godotsharp_string_name_new_copy(CustomUnsafe.AsRef(name)));