Browse Source

Only use new keyword when we have previously defined an Internal struct in the same hierarchy.

pull/1/head
triton 12 years ago
parent
commit
f5d0bed42f
  1. 11
      src/Generator/Generators/CSharp/CSharpTextTemplate.cs

11
src/Generator/Generators/CSharp/CSharpTextTemplate.cs

@ -267,7 +267,12 @@ namespace Cxxi.Generators.CSharp
WriteLine("[StructLayout(LayoutKind.Explicit, Size = {0})]", WriteLine("[StructLayout(LayoutKind.Explicit, Size = {0})]",
@class.Layout.Size); @class.Layout.Size);
WriteLine("internal new struct Internal"); Write("internal ");
if (@class.HasBaseClass)
Write("new ");
WriteLine("struct Internal");
WriteStartBraceIndent(); WriteStartBraceIndent();
ResetNewLine(); ResetNewLine();
@ -276,10 +281,14 @@ namespace Cxxi.Generators.CSharp
{ {
NewLineIfNeeded(); NewLineIfNeeded();
if (field.Ignore)
continue;
WriteLine("[FieldOffset({0})]", field.OffsetInBytes); WriteLine("[FieldOffset({0})]", field.OffsetInBytes);
WriteLine("public {0} {1};", field.Type, WriteLine("public {0} {1};", field.Type,
SafeIdentifier(field.OriginalName)); SafeIdentifier(field.OriginalName));
NeedNewLine(); NeedNewLine();
} }

Loading…
Cancel
Save