From 53a1763652f4835f2e939ee11d0982d62afda420 Mon Sep 17 00:00:00 2001 From: triton Date: Sun, 15 Sep 2013 02:31:06 +0100 Subject: [PATCH] Fixed generation of incomplete types by walking through the complete declarations. --- src/Generator/Generators/CLI/CLIMarshal.cs | 6 ++++++ src/Generator/Generators/CLI/CLITypePrinter.cs | 3 +++ 2 files changed, 9 insertions(+) diff --git a/src/Generator/Generators/CLI/CLIMarshal.cs b/src/Generator/Generators/CLI/CLIMarshal.cs index 8b7145bd..03977ec9 100644 --- a/src/Generator/Generators/CLI/CLIMarshal.cs +++ b/src/Generator/Generators/CLI/CLIMarshal.cs @@ -187,6 +187,9 @@ namespace CppSharp.Generators.CLI public override bool VisitClassDecl(Class @class) { + if (@class.CompleteDeclaration != null) + return VisitClassDecl(@class.CompleteDeclaration as Class); + var instance = string.Empty; if (!Context.ReturnType.Type.IsPointer()) @@ -494,6 +497,9 @@ namespace CppSharp.Generators.CLI public override bool VisitClassDecl(Class @class) { + if (@class.CompleteDeclaration != null) + return VisitClassDecl(@class.CompleteDeclaration as Class); + if (@class.IsValueType) { MarshalValueClass(@class); diff --git a/src/Generator/Generators/CLI/CLITypePrinter.cs b/src/Generator/Generators/CLI/CLITypePrinter.cs index 978afc94..22e16ac2 100644 --- a/src/Generator/Generators/CLI/CLITypePrinter.cs +++ b/src/Generator/Generators/CLI/CLITypePrinter.cs @@ -278,6 +278,9 @@ namespace CppSharp.Generators.CLI public string VisitClassDecl(Class @class) { + if (@class.CompleteDeclaration != null) + return VisitClassDecl(@class.CompleteDeclaration as Class); + return string.Format("{0}{1}", @class.Name, @class.IsRefType ? "^" : string.Empty); }