From 094fc9c59413cb4a131f0c13a4a8d502ef5e39b0 Mon Sep 17 00:00:00 2001 From: triton Date: Fri, 1 Mar 2013 17:41:59 +0000 Subject: [PATCH] Do not create a new native pointer property if the base class already provides one. --- .../Generators/CLI/CLIHeadersTemplate.cs | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/Generator/Generators/CLI/CLIHeadersTemplate.cs b/src/Generator/Generators/CLI/CLIHeadersTemplate.cs index 9e2cc211..c9e31e9a 100644 --- a/src/Generator/Generators/CLI/CLIHeadersTemplate.cs +++ b/src/Generator/Generators/CLI/CLIHeadersTemplate.cs @@ -198,10 +198,23 @@ namespace Cxxi.Generators.CLI if (@class.IsRefType) { - PushIndent(); - WriteLine("property {0} NativePtr;", nativeType); - PopIndent(); - NewLine(); + Class baseClass = null; + + if (@class.HasBaseClass) + baseClass = @class.Bases[0].Class; + + var hasRefBase = baseClass != null && baseClass.IsRefType + && !baseClass.Ignore; + + var hasIgnoredBase = baseClass != null && baseClass.Ignore; + + if (!@class.HasBase || !hasRefBase || hasIgnoredBase) + { + PushIndent(); + WriteLine("property {0} NativePtr;", nativeType); + PopIndent(); + NewLine(); + } } GenerateClassConstructors(@class, nativeType);