From f5d0bed42f338f74c3e6133acf3b78ac162c2f80 Mon Sep 17 00:00:00 2001 From: triton Date: Mon, 8 Apr 2013 23:50:29 +0100 Subject: [PATCH] Only use new keyword when we have previously defined an Internal struct in the same hierarchy. --- .../Generators/CSharp/CSharpTextTemplate.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs index 3e85af9c..976030cd 100644 --- a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs +++ b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs @@ -267,7 +267,12 @@ namespace Cxxi.Generators.CSharp WriteLine("[StructLayout(LayoutKind.Explicit, Size = {0})]", @class.Layout.Size); - WriteLine("internal new struct Internal"); + Write("internal "); + + if (@class.HasBaseClass) + Write("new "); + + WriteLine("struct Internal"); WriteStartBraceIndent(); ResetNewLine(); @@ -276,10 +281,14 @@ namespace Cxxi.Generators.CSharp { NewLineIfNeeded(); + if (field.Ignore) + continue; + WriteLine("[FieldOffset({0})]", field.OffsetInBytes); WriteLine("public {0} {1};", field.Type, - SafeIdentifier(field.OriginalName)); + SafeIdentifier(field.OriginalName)); + NeedNewLine(); }