Browse Source

Pass the driver to CLIMarshal so that we can the Options field for qualified names.

pull/1/head
triton 12 years ago
parent
commit
5cb596eea8
  1. 11
      src/Generator/Generators/CLI/CLIMarshal.cs
  2. 11
      src/Generator/Generators/CLI/CLISourcesTemplate.cs

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

@ -13,15 +13,14 @@ namespace Cxxi.Generators.CLI @@ -13,15 +13,14 @@ namespace Cxxi.Generators.CLI
{
public TextGenerator Return;
Library Library { get; set; }
Driver Driver { get; set; }
ITypeMapDatabase TypeMapDatabase { get; set; }
MarshalContext Context { get; set; }
public CLIMarshalNativeToManagedPrinter(ITypeMapDatabase database,
Library library, MarshalContext marshalContext)
public CLIMarshalNativeToManagedPrinter(Driver driver, MarshalContext marshalContext)
{
Library = library;
TypeMapDatabase = database;
Driver = driver;
TypeMapDatabase = driver.TypeDatabase;
Context = marshalContext;
Return = new TextGenerator();
@ -227,7 +226,7 @@ namespace Cxxi.Generators.CLI @@ -227,7 +226,7 @@ namespace Cxxi.Generators.CLI
private string ToCLITypeName(Declaration decl)
{
var typePrinter = new CLITypePrinter(TypeMapDatabase, Library);
var typePrinter = new CLITypePrinter(Driver.TypeDatabase, Driver.Library);
return typePrinter.VisitDeclaration(decl);
}

11
src/Generator/Generators/CLI/CLISourcesTemplate.cs

@ -237,9 +237,7 @@ namespace Cxxi.Generators.CLI @@ -237,9 +237,7 @@ namespace Cxxi.Generators.CLI
ReturnType = param.Type
};
var marshal = new CLIMarshalNativeToManagedPrinter(
Driver.TypeDatabase, Library, ctx);
var marshal = new CLIMarshalNativeToManagedPrinter(Driver, ctx);
param.Visit(marshal);
returns.Add(marshal.Return);
@ -301,9 +299,7 @@ namespace Cxxi.Generators.CLI @@ -301,9 +299,7 @@ namespace Cxxi.Generators.CLI
ReturnType = field.Type
};
var marshal = new CLIMarshalNativeToManagedPrinter(
Driver.TypeDatabase, Library, ctx);
var marshal = new CLIMarshalNativeToManagedPrinter(Driver, ctx);
field.Visit(marshal);
WriteLine("{0} = {1};", field.Name, marshal.Return);
@ -448,8 +444,7 @@ namespace Cxxi.Generators.CLI @@ -448,8 +444,7 @@ namespace Cxxi.Generators.CLI
ReturnType = retType
};
var marshal = new CLIMarshalNativeToManagedPrinter(Driver.TypeDatabase,
Library, ctx);
var marshal = new CLIMarshalNativeToManagedPrinter(Driver, ctx);
function.ReturnType.Visit(marshal);
WriteLine("{0};", marshal.Return);

Loading…
Cancel
Save