From 365862419e1e05760fad9c39345e69c44322cd4e Mon Sep 17 00:00:00 2001 From: triton Date: Sun, 8 Sep 2013 22:48:25 +0100 Subject: [PATCH] Fixed support for classes with trivial default constructors. --- .../Generators/CSharp/CSharpTextTemplate.cs | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs index d4eb1dbd..c84f8720 100644 --- a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs +++ b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs @@ -416,6 +416,9 @@ namespace CppSharp.Generators.CSharp if (ctor.IsMoveConstructor) continue; + if (ctor.IsDefaultConstructor && !@class.HasNonTrivialDefaultConstructor) + continue; + tryAddOverload(ctor); } @@ -1546,12 +1549,17 @@ namespace CppSharp.Generators.CSharp WriteLine("{0} = Marshal.AllocHGlobal({1});", Helpers.InstanceIdentifier, @class.Layout.Size); - Write("Internal.{0}({1}", GetFunctionNativeIdentifier(method), - Helpers.InstanceIdentifier); - if (@params.Any()) - Write(", "); - GenerateFunctionParams(@params); - WriteLine(");"); + + if (!method.IsDefaultConstructor || @class.HasNonTrivialDefaultConstructor) + { + Write("Internal.{0}({1}", GetFunctionNativeIdentifier(method), + Helpers.InstanceIdentifier); + if (@params.Any()) + Write(", "); + GenerateFunctionParams(@params); + WriteLine(");"); + } + if (Options.GenerateVirtualTables && @class.IsDynamic) WriteLine("SetupVTables({0});", Generator.GeneratedIdentifier("Instance")); }