Browse Source

Fix memory leaks in the map for std::string

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
bug-pass-const-char-star-no-copy
Dimitar Dobrev 7 years ago
parent
commit
2cd0f6fa38
  1. 6
      src/Generator/Types/Std/Stdlib.cs

6
src/Generator/Types/Std/Stdlib.cs

@ -325,7 +325,8 @@ namespace CppSharp.Types.Std
assign.Name}({varBasicString}, {ctx.Parameter.Name});"); assign.Name}({varBasicString}, {ctx.Parameter.Name});");
ctx.Return.Write($"{varBasicString}.{Helpers.InstanceIdentifier}"); ctx.Return.Write($"{varBasicString}.{Helpers.InstanceIdentifier}");
if (!type.IsPointer()) if (!type.IsPointer())
ctx.Cleanup.WriteLine($"{varBasicString}.Dispose(false);"); ctx.Cleanup.WriteLine($@"{varBasicString}.Dispose({
(ctx.MarshalKind == MarshalKind.NativeField ? "false" : string.Empty)});");
} }
} }
@ -350,7 +351,8 @@ namespace CppSharp.Types.Std
string varString = $"__stringRet{ctx.ParameterIndex}"; string varString = $"__stringRet{ctx.ParameterIndex}";
ctx.Before.WriteLine($@"var {varString} = { ctx.Before.WriteLine($@"var {varString} = {
qualifiedBasicString}Extensions.{c_str.Name}({varBasicString});"); qualifiedBasicString}Extensions.{c_str.Name}({varBasicString});");
ctx.Before.WriteLine($"{varBasicString}.Dispose(false);"); ctx.Before.WriteLine($@"{varBasicString}.Dispose({
(ctx.MarshalKind == MarshalKind.NativeField ? "false" : string.Empty)});");
ctx.Return.Write(varString); ctx.Return.Write(varString);
} }
} }

Loading…
Cancel
Save