From 515e1ed4a0b85d1e1fcd415c4a18dbf465a71743 Mon Sep 17 00:00:00 2001 From: marcos henrich Date: Fri, 22 Mar 2013 22:23:54 +0000 Subject: [PATCH] Checks if pointer fields are initialized before getting their native pointer --- src/Generator/Generators/CLI/CLIMarshal.cs | 9 +++++++++ 1 file changed, 9 insertions(+) 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)