diff options
author | Zae <zaevi@live.com> | 2024-10-24 00:08:43 +0800 |
---|---|---|
committer | Zae <zaevi@live.com> | 2024-10-24 00:08:43 +0800 |
commit | 06df5275c298137cebd7c1faf02f3e193a3464af (patch) | |
tree | 9943a628e958b1ff75bfb8fd7edb615244dcd516 /modules/mono | |
parent | 533c616cb86ff7bb940d58ffbbcc1a3eca0aa33d (diff) | |
download | redot-engine-06df5275c298137cebd7c1faf02f3e193a3464af.tar.gz |
C#: Fix StringName leak when converting `Variant` to `Signal` / `Callable`
Diffstat (limited to 'modules/mono')
-rw-r--r-- | modules/mono/glue/GodotSharp/GodotSharp/Core/NativeInterop/VariantUtils.cs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/NativeInterop/VariantUtils.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/NativeInterop/VariantUtils.cs index dc151e2c3e..222ded6895 100644 --- a/modules/mono/glue/GodotSharp/GodotSharp/Core/NativeInterop/VariantUtils.cs +++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/NativeInterop/VariantUtils.cs @@ -534,7 +534,10 @@ namespace Godot.NativeInterop [MethodImpl(MethodImplOptions.AggressiveInlining)] public static Callable ConvertToCallable(in godot_variant p_var) - => Marshaling.ConvertCallableToManaged(ConvertToNativeCallable(p_var)); + { + using var callable = ConvertToNativeCallable(p_var); + return Marshaling.ConvertCallableToManaged(callable); + } [MethodImpl(MethodImplOptions.AggressiveInlining)] public static godot_signal ConvertToNativeSignal(in godot_variant p_var) @@ -542,7 +545,10 @@ namespace Godot.NativeInterop [MethodImpl(MethodImplOptions.AggressiveInlining)] public static Signal ConvertToSignal(in godot_variant p_var) - => Marshaling.ConvertSignalToManaged(ConvertToNativeSignal(p_var)); + { + using var signal = ConvertToNativeSignal(p_var); + return Marshaling.ConvertSignalToManaged(signal); + } public static godot_array ConvertToNativeArray(in godot_variant p_var) => p_var.Type == Variant.Type.Array ? |