From 62fcb0696efd9755a2928a1c2e1b101dad621990 Mon Sep 17 00:00:00 2001 From: marcos henrich Date: Fri, 22 Mar 2013 20:50:19 +0000 Subject: [PATCH] Recursive struct fields marshaling --- .../Generators/CLI/CLISourcesTemplate.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/Generator/Generators/CLI/CLISourcesTemplate.cs b/src/Generator/Generators/CLI/CLISourcesTemplate.cs index 93ee1cac..25cf7290 100644 --- a/src/Generator/Generators/CLI/CLISourcesTemplate.cs +++ b/src/Generator/Generators/CLI/CLISourcesTemplate.cs @@ -384,9 +384,23 @@ namespace Cxxi.Generators.CLI private void GenerateStructMarshaling(Class @class, string nativePointer) { + GenerateStructMarshalingFields(@class, nativePointer); + } + + private void GenerateStructMarshalingFields(Class @class, string nativePointer) + { + foreach (var @base in @class.Bases) + { + if (!@base.IsClass || @base.Class.Ignore) + continue; + + var baseClass = @base.Class; + GenerateStructMarshalingFields(baseClass, nativePointer); + } + foreach (var field in @class.Fields) { - if (field.Ignore) continue; + if (CheckIgnoreField(@class, field)) continue; var nativeField = string.Format("{0}->{1}", nativePointer, field.OriginalName);