diff --git a/src/Generator/Generators/CLI/CLISourcesTemplate.cs b/src/Generator/Generators/CLI/CLISourcesTemplate.cs index 8a0c4b08..35e3a2fa 100644 --- a/src/Generator/Generators/CLI/CLISourcesTemplate.cs +++ b/src/Generator/Generators/CLI/CLISourcesTemplate.cs @@ -266,6 +266,7 @@ namespace Cxxi.Generators.CLI var ctx = new MarshalContext(Driver) { + ArgName = field.Name, ReturnVarName = variable, ReturnType = field.Type }; @@ -273,6 +274,9 @@ namespace Cxxi.Generators.CLI var marshal = new CLIMarshalNativeToManagedPrinter(ctx); field.Visit(marshal); + if (!string.IsNullOrWhiteSpace(marshal.Context.SupportBefore)) + Write(marshal.Context.SupportBefore); + WriteLine("return {0};", marshal.Context.Return); WriteCloseBraceIndent(); @@ -666,10 +670,9 @@ namespace Cxxi.Generators.CLI if (needsReturn) { - Write("return "); - var ctx = new MarshalContext(Driver) { + ArgName = "ret", ReturnVarName = "ret", ReturnType = retType }; @@ -677,7 +680,10 @@ namespace Cxxi.Generators.CLI var marshal = new CLIMarshalNativeToManagedPrinter(ctx); function.ReturnType.Visit(marshal); - WriteLine("{0};", marshal.Context.Return); + if (!string.IsNullOrWhiteSpace(marshal.Context.SupportBefore)) + Write(marshal.Context.SupportBefore); + + WriteLine("return {0};", marshal.Context.Return); } }