Browse Source

Improved CLI value class marshaling.

pull/1/head
triton 13 years ago
parent
commit
dae633b89f
  1. 12
      src/Generator/Generators/CLI/CLIMarshal.cs

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

@ -131,8 +131,16 @@ namespace Cxxi.Generators.CLI
public bool VisitClassDecl(Class @class) public bool VisitClassDecl(Class @class)
{ {
Return = string.Format("gcnew {0}({1})", @class.Name, Context.ReturnVarName); if (@class.IsRefType)
return @class.IsValueType; Return = "gcnew ";
Return += string.Format("{0}(", @class.Name);
if (@class.IsValueType && !this.Context.ReturnType.IsPointer())
Return += "&";
Return += string.Format("{0})", this.Context.ReturnVarName);
return true;
} }
public bool VisitFieldDecl(Field field) public bool VisitFieldDecl(Field field)

Loading…
Cancel
Save