Browse Source

Fixed generation of incomplete types by walking through the complete declarations.

pull/63/head
triton 13 years ago
parent
commit
53a1763652
  1. 6
      src/Generator/Generators/CLI/CLIMarshal.cs
  2. 3
      src/Generator/Generators/CLI/CLITypePrinter.cs

6
src/Generator/Generators/CLI/CLIMarshal.cs

@ -187,6 +187,9 @@ namespace CppSharp.Generators.CLI @@ -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 @@ -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);

3
src/Generator/Generators/CLI/CLITypePrinter.cs

@ -278,6 +278,9 @@ namespace CppSharp.Generators.CLI @@ -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);
}

Loading…
Cancel
Save