Browse Source

Fix generated constructor cant use `placement new` when class overloads `operator new` (#1431)

pull/1298/head
josetr 5 years ago committed by GitHub
parent
commit
3ffa42aa2f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      src/Generator/Passes/SymbolsCodeGenerator.cs

4
src/Generator/Passes/SymbolsCodeGenerator.cs

@ -137,7 +137,7 @@ namespace CppSharp.Passes @@ -137,7 +137,7 @@ namespace CppSharp.Passes
p => cppTypePrinter.VisitParameter(p)))})");
WriteLine($": {@namespace}({@params}) {{}} }};");
Write($"extern \"C\" {{ void {wrapper}({signature}) ");
WriteLine($"{{ new ({Helpers.InstanceField}) {wrapper}{@namespace}({@params}); }} }}");
WriteLine($"{{ ::new ({Helpers.InstanceField}) {wrapper}{@namespace}({@params}); }} }}");
}
else
{
@ -146,7 +146,7 @@ namespace CppSharp.Passes @@ -146,7 +146,7 @@ namespace CppSharp.Passes
Write($@"{{ class {wrapper}{method.Namespace.Namespace.Name} : public {
method.Namespace.Namespace.Visit(cppTypePrinter)} ");
Write($"{{ void {wrapper}({signature}) ");
Write($"{{ new ({Helpers.InstanceField}) {@namespace}({@params}); }} }}");
Write($"{{ ::new ({Helpers.InstanceField}) {@namespace}({@params}); }} }}");
if (method.Namespace.Access == AccessSpecifier.Protected)
Write("; }");
NewLine();

Loading…
Cancel
Save