Browse Source

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

pull/1/head
triton 13 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
{ {
public TextGenerator Return; public TextGenerator Return;
Library Library { get; set; } Driver Driver { get; set; }
ITypeMapDatabase TypeMapDatabase { get; set; } ITypeMapDatabase TypeMapDatabase { get; set; }
MarshalContext Context { get; set; } MarshalContext Context { get; set; }
public CLIMarshalNativeToManagedPrinter(ITypeMapDatabase database, public CLIMarshalNativeToManagedPrinter(Driver driver, MarshalContext marshalContext)
Library library, MarshalContext marshalContext)
{ {
Library = library; Driver = driver;
TypeMapDatabase = database; TypeMapDatabase = driver.TypeDatabase;
Context = marshalContext; Context = marshalContext;
Return = new TextGenerator(); Return = new TextGenerator();
@ -227,7 +226,7 @@ namespace Cxxi.Generators.CLI
private string ToCLITypeName(Declaration decl) private string ToCLITypeName(Declaration decl)
{ {
var typePrinter = new CLITypePrinter(TypeMapDatabase, Library); var typePrinter = new CLITypePrinter(Driver.TypeDatabase, Driver.Library);
return typePrinter.VisitDeclaration(decl); return typePrinter.VisitDeclaration(decl);
} }

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

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

Loading…
Cancel
Save