Browse Source

Fixed support for classes with trivial default constructors.

pull/53/merge
triton 12 years ago
parent
commit
365862419e
  1. 20
      src/Generator/Generators/CSharp/CSharpTextTemplate.cs

20
src/Generator/Generators/CSharp/CSharpTextTemplate.cs

@ -416,6 +416,9 @@ namespace CppSharp.Generators.CSharp
if (ctor.IsMoveConstructor) if (ctor.IsMoveConstructor)
continue; continue;
if (ctor.IsDefaultConstructor && !@class.HasNonTrivialDefaultConstructor)
continue;
tryAddOverload(ctor); tryAddOverload(ctor);
} }
@ -1546,12 +1549,17 @@ namespace CppSharp.Generators.CSharp
WriteLine("{0} = Marshal.AllocHGlobal({1});", Helpers.InstanceIdentifier, WriteLine("{0} = Marshal.AllocHGlobal({1});", Helpers.InstanceIdentifier,
@class.Layout.Size); @class.Layout.Size);
Write("Internal.{0}({1}", GetFunctionNativeIdentifier(method),
Helpers.InstanceIdentifier); if (!method.IsDefaultConstructor || @class.HasNonTrivialDefaultConstructor)
if (@params.Any()) {
Write(", "); Write("Internal.{0}({1}", GetFunctionNativeIdentifier(method),
GenerateFunctionParams(@params); Helpers.InstanceIdentifier);
WriteLine(");"); if (@params.Any())
Write(", ");
GenerateFunctionParams(@params);
WriteLine(");");
}
if (Options.GenerateVirtualTables && @class.IsDynamic) if (Options.GenerateVirtualTables && @class.IsDynamic)
WriteLine("SetupVTables({0});", Generator.GeneratedIdentifier("Instance")); WriteLine("SetupVTables({0});", Generator.GeneratedIdentifier("Instance"));
} }

Loading…
Cancel
Save