diff --git a/src/Generator/Generators/CLI/CLIMarshal.cs b/src/Generator/Generators/CLI/CLIMarshal.cs index 6603b52a..e92f0f95 100644 --- a/src/Generator/Generators/CLI/CLIMarshal.cs +++ b/src/Generator/Generators/CLI/CLIMarshal.cs @@ -586,8 +586,17 @@ namespace Cxxi.Generators.CLI if (!string.IsNullOrWhiteSpace(marshal.SupportBefore)) SupportBefore.WriteLine(marshal.SupportBefore); + if(field.Type.IsPointer()) + { + SupportBefore.WriteLine("if ({0} != nullptr)", fieldRef); + SupportBefore.PushIndent(); + } + SupportBefore.WriteLine("{0}.{1} = {2};", marshalVar, field.OriginalName, marshal.Return); + + if(field.Type.IsPointer()) + SupportBefore.PopIndent(); } public bool VisitFieldDecl(Field field)