Browse Source

Merge pull request #191 from ddobrev/master

Added preliminary support for char16 to avoid crashes because of null parameter types.
pull/193/head
João Matos 12 years ago
parent
commit
6583fb4c8e
  1. 3
      src/AST/Type.cs
  2. 4
      src/Generator/Generators/CLI/CLIMarshal.cs
  3. 1
      src/Generator/Generators/CLI/CLITypePrinter.cs
  4. 2
      src/Generator/Generators/CSharp/CSharpMarshal.cs
  5. 1
      src/Generator/Generators/CSharp/CSharpTypePrinter.cs
  6. 1
      src/Generator/Types/CppTypePrinter.cs
  7. 1
      src/Generator/Utils/Utils.cs
  8. 2
      src/Parser/Parser.cpp
  9. 5
      tests/Basic/Basic.Tests.cs
  10. 2
      tests/Basic/Basic.h

3
src/AST/Type.cs

@ -817,7 +817,8 @@ namespace CppSharp.AST @@ -817,7 +817,8 @@ namespace CppSharp.AST
UInt64,
Float,
Double,
IntPtr
IntPtr,
Char16
}
/// <summary>

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

@ -138,8 +138,6 @@ namespace CppSharp.Generators.CLI @@ -138,8 +138,6 @@ namespace CppSharp.Generators.CLI
case PrimitiveType.Double:
Context.Return.Write(Context.ReturnVarName);
return true;
case PrimitiveType.WideChar:
return false;
}
return false;
@ -468,8 +466,6 @@ namespace CppSharp.Generators.CLI @@ -468,8 +466,6 @@ namespace CppSharp.Generators.CLI
case PrimitiveType.Double:
Context.Return.Write(Context.Parameter.Name);
return true;
case PrimitiveType.WideChar:
return false;
}
return false;

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

@ -171,6 +171,7 @@ namespace CppSharp.Generators.CLI @@ -171,6 +171,7 @@ namespace CppSharp.Generators.CLI
{
case PrimitiveType.Bool: return "bool";
case PrimitiveType.Void: return "void";
case PrimitiveType.Char16:
case PrimitiveType.WideChar: return "char";
case PrimitiveType.Int8: return "char";
case PrimitiveType.UInt8: return "unsigned char";

2
src/Generator/Generators/CSharp/CSharpMarshal.cs

@ -198,6 +198,7 @@ namespace CppSharp.Generators.CSharp @@ -198,6 +198,7 @@ namespace CppSharp.Generators.CSharp
case PrimitiveType.Double:
Context.Return.Write(Context.ReturnVarName);
return true;
case PrimitiveType.Char16:
case PrimitiveType.WideChar:
return false;
}
@ -509,6 +510,7 @@ namespace CppSharp.Generators.CSharp @@ -509,6 +510,7 @@ namespace CppSharp.Generators.CSharp
case PrimitiveType.Double:
Context.Return.Write(Context.Parameter.Name);
return true;
case PrimitiveType.Char16:
case PrimitiveType.WideChar:
return false;
}

1
src/Generator/Generators/CSharp/CSharpTypePrinter.cs

@ -365,6 +365,7 @@ namespace CppSharp.Generators.CSharp @@ -365,6 +365,7 @@ namespace CppSharp.Generators.CSharp
{
case PrimitiveType.Bool: return "bool";
case PrimitiveType.Void: return "void";
case PrimitiveType.Char16:
case PrimitiveType.WideChar: return "char";
case PrimitiveType.Int8: return "sbyte";
case PrimitiveType.UInt8: return "byte";

1
src/Generator/Types/CppTypePrinter.cs

@ -98,6 +98,7 @@ namespace CppSharp.Types @@ -98,6 +98,7 @@ namespace CppSharp.Types
{
case PrimitiveType.Bool: return "bool";
case PrimitiveType.Void: return "void";
case PrimitiveType.Char16:
case PrimitiveType.WideChar: return "char";
case PrimitiveType.Int8: return "char";
case PrimitiveType.UInt8: return "unsigned char";

1
src/Generator/Utils/Utils.cs

@ -23,6 +23,7 @@ namespace CppSharp @@ -23,6 +23,7 @@ namespace CppSharp
{
case PrimitiveType.Bool: return typeof(bool);
case PrimitiveType.Void: return typeof(void);
case PrimitiveType.Char16:
case PrimitiveType.WideChar: return typeof(char);
case PrimitiveType.Int8: return typeof(sbyte);
case PrimitiveType.UInt8: return typeof(byte);

2
src/Parser/Parser.cpp

@ -1152,6 +1152,8 @@ static CppSharp::AST::PrimitiveType WalkBuiltinType(const clang::BuiltinType* Bu @@ -1152,6 +1152,8 @@ static CppSharp::AST::PrimitiveType WalkBuiltinType(const clang::BuiltinType* Bu
case clang::BuiltinType::WChar_S:
case clang::BuiltinType::WChar_U: return PrimitiveType::WideChar;
case clang::BuiltinType::Char16: return PrimitiveType::Char16;
case clang::BuiltinType::Short: return PrimitiveType::Int16;
case clang::BuiltinType::UShort: return PrimitiveType::UInt16;

5
tests/Basic/Basic.Tests.cs

@ -188,5 +188,10 @@ public class BasicTests : GeneratorTestFixture @@ -188,5 +188,10 @@ public class BasicTests : GeneratorTestFixture
{
Assert.That(TestStaticClass.Add(1, 2), Is.EqualTo(3));
}
[Test, Ignore]
public void TestChar16()
{
}
}

2
tests/Basic/Basic.h

@ -15,6 +15,8 @@ public: @@ -15,6 +15,8 @@ public:
float B;
const char* GetANSI();
// TODO: VC++ does not support char16
// char16 chr16;
};
struct DLL_API Bar

Loading…
Cancel
Save