From 9166a55202e1285be5d42c092b18699d1b0e1733 Mon Sep 17 00:00:00 2001 From: triton Date: Wed, 16 Apr 2014 14:10:20 +0100 Subject: [PATCH] Fixed generation of properties to behave as expected. Fixed this by changing GenerateProperties to use GetterSetterToPropertyPass instead of GetterSetterToPropertyAdvancedPass. Fixes issue #215. --- src/Generator/Driver.cs | 4 ++-- tests/Basic/Basic.Tests.cs | 8 ++++++++ tests/Basic/Basic.cs | 1 + tests/Basic/Basic.h | 6 ++++++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/Generator/Driver.cs b/src/Generator/Driver.cs index f77ca3b8..8a1be882 100644 --- a/src/Generator/Driver.cs +++ b/src/Generator/Driver.cs @@ -300,8 +300,8 @@ namespace CppSharp if (Options.GenerateVirtualTables) TranslationUnitPasses.AddPass(new CheckVTableComponentsPass()); - if (Options.GenerateProperties) - TranslationUnitPasses.AddPass(new GetterSetterToPropertyAdvancedPass()); + if (Options.GenerateProperties) + TranslationUnitPasses.AddPass(new GetterSetterToPropertyPass()); } public void ProcessCode() diff --git a/tests/Basic/Basic.Tests.cs b/tests/Basic/Basic.Tests.cs index 35f9412a..e65c1c79 100644 --- a/tests/Basic/Basic.Tests.cs +++ b/tests/Basic/Basic.Tests.cs @@ -265,5 +265,13 @@ public class BasicTests : GeneratorTestFixture var arrays = new TestArraysPointers(&values, 1); Assert.That(arrays.Value, Is.EqualTo(MyEnum.A)); } + + [Test] + public unsafe void TestGetterSetterToProperties() + { + var @class = new TestGetterSetterToProperties(); + Assert.That(@class.Width, Is.EqualTo(640)); + Assert.That(@class.Height, Is.EqualTo(480)); + } } \ No newline at end of file diff --git a/tests/Basic/Basic.cs b/tests/Basic/Basic.cs index a6295d89..93a15552 100644 --- a/tests/Basic/Basic.cs +++ b/tests/Basic/Basic.cs @@ -20,6 +20,7 @@ namespace CppSharp.Tests driver.Options.GenerateVirtualTables = true; driver.Options.GenerateCopyConstructors = true; driver.Options.MarshalCharAsManagedChar = true; + driver.Options.GenerateProperties = true; } public override void Preprocess(Driver driver, ASTContext ctx) diff --git a/tests/Basic/Basic.h b/tests/Basic/Basic.h index 482ca179..28689517 100644 --- a/tests/Basic/Basic.h +++ b/tests/Basic/Basic.h @@ -362,4 +362,10 @@ public: } MyEnum Value; +}; + +struct DLL_API TestGetterSetterToProperties +{ + int getWidth() { return 640; } + int getHeight() { return 480; } }; \ No newline at end of file