Browse Source

Fixed the 64-bit primitive support in CLI type printing.

pull/1/head
triton 13 years ago
parent
commit
f2c86a509a
  1. 16
      src/Generator/Generators/CLI/CLITypePrinter.cs

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

@ -33,8 +33,7 @@ namespace Cxxi.Generators.CLI
{ {
var arguments = function.Arguments; var arguments = function.Arguments;
var returnType = function.ReturnType; var returnType = function.ReturnType;
var args = string.Empty;
string args = string.Empty;
if (arguments.Count > 0) if (arguments.Count > 0)
args = GetArgumentsString(function, hasNames: false); args = GetArgumentsString(function, hasNames: false);
@ -103,7 +102,7 @@ namespace Cxxi.Generators.CLI
return "System::IntPtr"; return "System::IntPtr";
} }
if (pointee.IsPrimitiveType(PrimitiveType.Char)) if (pointee.IsPrimitiveType(PrimitiveType.Char)/* && quals.IsConst*/)
{ {
return "System::String^"; return "System::String^";
} }
@ -135,22 +134,19 @@ namespace Cxxi.Generators.CLI
case PrimitiveType.UInt16: return "unsigned short"; case PrimitiveType.UInt16: return "unsigned short";
case PrimitiveType.Int32: return "int"; case PrimitiveType.Int32: return "int";
case PrimitiveType.UInt32: return "unsigned int"; case PrimitiveType.UInt32: return "unsigned int";
case PrimitiveType.Int64: return "long"; case PrimitiveType.Int64: return "long long";
case PrimitiveType.UInt64: return "unsigned long"; case PrimitiveType.UInt64: return "unsigned long long";
case PrimitiveType.Float: return "float"; case PrimitiveType.Float: return "float";
case PrimitiveType.Double: return "double"; case PrimitiveType.Double: return "double";
} }
return string.Empty; throw new NotSupportedException();
} }
public string VisitTypedefType(TypedefType typedef, TypeQualifiers quals) public string VisitTypedefType(TypedefType typedef, TypeQualifiers quals)
{ {
var decl = typedef.Declaration; var decl = typedef.Declaration;
if (string.IsNullOrEmpty(decl.Name))
return null;
TypeMap typeMap = null; TypeMap typeMap = null;
if (TypeMapDatabase.FindTypeMap(decl, out typeMap)) if (TypeMapDatabase.FindTypeMap(decl, out typeMap))
{ {
@ -185,7 +181,7 @@ namespace Cxxi.Generators.CLI
public string VisitPrimitiveType(PrimitiveType type, TypeQualifiers quals) public string VisitPrimitiveType(PrimitiveType type, TypeQualifiers quals)
{ {
throw new NotImplementedException(); return VisitPrimitiveType(type);
} }
public string VisitDeclaration(Declaration decl, TypeQualifiers quals) public string VisitDeclaration(Declaration decl, TypeQualifiers quals)

Loading…
Cancel
Save