Browse Source

Fixed the type map for an enum to also handle pointers.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/658/head
Dimitar Dobrev 9 years ago
parent
commit
d14ad944fc
  1. 2
      tests/CSharp/CSharp.Tests.cs
  2. 3
      tests/CSharp/CSharp.cpp
  3. 5
      tests/CSharp/CSharp.cs
  4. 2
      tests/CSharp/CSharp.h

2
tests/CSharp/CSharp.Tests.cs

@ -192,7 +192,7 @@ public unsafe class CSharpTests : GeneratorTestFixture @@ -192,7 +192,7 @@ public unsafe class CSharpTests : GeneratorTestFixture
methodsWithDefaultValues.DefaultEnumAssignedBitwiseOrShort();
methodsWithDefaultValues.DefaultNonEmptyCtor();
methodsWithDefaultValues.DefaultNonEmptyCtorWithNullPtr();
methodsWithDefaultValues.DefaultMappedToEnum();
Assert.That(methodsWithDefaultValues.DefaultMappedToEnum(), Is.EqualTo(Flags.Flag3));
methodsWithDefaultValues.DefaultMappedToZeroEnum();
methodsWithDefaultValues.DefaultMappedToEnumAssignedWithCtor();
methodsWithDefaultValues.DefaultImplicitCtorInt();

3
tests/CSharp/CSharp.cpp

@ -457,8 +457,9 @@ void MethodsWithDefaultValues::defaultNonEmptyCtorWithNullPtr(QGenericArgument a @@ -457,8 +457,9 @@ void MethodsWithDefaultValues::defaultNonEmptyCtorWithNullPtr(QGenericArgument a
{
}
void MethodsWithDefaultValues::defaultMappedToEnum(QFlags<Flags> qFlags)
QFlags<Flags> MethodsWithDefaultValues::defaultMappedToEnum(const QFlags<Flags>& qFlags)
{
return qFlags;
}
void MethodsWithDefaultValues::defaultMappedToZeroEnum(QFlags<Flags> qFlags)

5
tests/CSharp/CSharp.cs

@ -38,7 +38,10 @@ namespace CppSharp.Tests @@ -38,7 +38,10 @@ namespace CppSharp.Tests
public override void CSharpMarshalToNative(MarshalContext ctx)
{
ctx.Return.Write(ctx.Parameter.Name);
if (ctx.Parameter.Type.IsAddress())
ctx.Return.Write("new global::System.IntPtr(&{0})", ctx.Parameter.Name);
else
ctx.Return.Write(ctx.Parameter.Name);
}
public override void CSharpMarshalToManaged(MarshalContext ctx)

2
tests/CSharp/CSharp.h

@ -360,7 +360,7 @@ public: @@ -360,7 +360,7 @@ public:
void defaultEnumAssignedBitwiseOrShort(UntypedFlags flags = Flag1 | Flag2);
void defaultNonEmptyCtor(QGenericArgument arg = QGenericArgument(0));
void defaultNonEmptyCtorWithNullPtr(QGenericArgument arg = QGenericArgument(nullptr));
void defaultMappedToEnum(QFlags<Flags> qFlags = Flags::Flag1);
QFlags<Flags> defaultMappedToEnum(const QFlags<Flags>& qFlags = Flags::Flag3);
void defaultMappedToZeroEnum(QFlags<Flags> qFlags = 0);
void defaultMappedToEnumAssignedWithCtor(QFlags<Flags> qFlags = QFlags<Flags>());
void defaultImplicitCtorInt(Quux arg = 0);

Loading…
Cancel
Save