Browse Source

Fixed generation support for pointers to enums in C#.

Fixes https://github.com/mono/CppSharp/issues/1093.
pull/1139/head
Joao Matos 8 years ago
parent
commit
2d57c787c6
  1. 2
      src/Generator/Generators/CSharp/CSharpTypePrinter.cs
  2. 8
      tests/CSharp/CSharp.cpp
  3. 8
      tests/CSharp/CSharp.h

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

@ -182,7 +182,7 @@ namespace CppSharp.Generators.CSharp @@ -182,7 +182,7 @@ namespace CppSharp.Generators.CSharp
public override TypePrinterResult VisitPointerType(PointerType pointer,
TypeQualifiers quals)
{
if (MarshalKind == MarshalKind.NativeField)
if (MarshalKind == MarshalKind.NativeField && !pointer.Pointee.IsEnumType())
return IntPtrType;
if (pointer.Pointee is FunctionType)

8
tests/CSharp/CSharp.cpp

@ -430,6 +430,14 @@ int TestRenaming::property() @@ -430,6 +430,14 @@ int TestRenaming::property()
return 1;
}
UsesPointerToEnum::UsesPointerToEnum()
{
}
void UsesPointerToEnum::hasPointerToEnumInParam(Flags* flag)
{
}
UsesPointerToEnumInParamOfVirtual::UsesPointerToEnumInParamOfVirtual()
{
}

8
tests/CSharp/CSharp.h

@ -298,6 +298,14 @@ enum class Flags @@ -298,6 +298,14 @@ enum class Flags
Flag3 = 4
};
class DLL_API UsesPointerToEnum
{
public:
UsesPointerToEnum();
Flags* _flags;
void hasPointerToEnumInParam(Flags* flag);
};
class DLL_API UsesPointerToEnumInParamOfVirtual
{
public:

Loading…
Cancel
Save