From 49ab0227f98c7c625c470c6b5ec2479d77772917 Mon Sep 17 00:00:00 2001 From: Dimitar Dobrev Date: Tue, 2 Jul 2019 03:01:13 +0300 Subject: [PATCH] Fix a memory leak when passing an indirect std::string Signed-off-by: Dimitar Dobrev --- src/Generator/Types/Std/Stdlib.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Generator/Types/Std/Stdlib.cs b/src/Generator/Types/Std/Stdlib.cs index ed87ad6d..a5391349 100644 --- a/src/Generator/Types/Std/Stdlib.cs +++ b/src/Generator/Types/Std/Stdlib.cs @@ -324,7 +324,7 @@ namespace CppSharp.Types.Std ctx.Before.WriteLine($@"{qualifiedBasicString}Extensions.{ assign.Name}({varBasicString}, {ctx.Parameter.Name});"); ctx.Return.Write($"{varBasicString}.{Helpers.InstanceIdentifier}"); - if (!type.IsPointer()) + if (!type.IsPointer() || ctx.Parameter.IsIndirect) ctx.Cleanup.WriteLine($@"{varBasicString}.Dispose({ (ctx.MarshalKind == MarshalKind.NativeField ? "false" : string.Empty)});"); }