From da7dd1b674a8092f28d26d26aa3f897bc186e432 Mon Sep 17 00:00:00 2001 From: Dimitar Dobrev Date: Sun, 29 Nov 2020 23:06:59 +0200 Subject: [PATCH] Export symbols for indirectly accessible constructors Signed-off-by: Dimitar Dobrev --- src/Generator/Passes/GenerateSymbolsPass.cs | 1 - src/Generator/Passes/SymbolsCodeGenerator.cs | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Generator/Passes/GenerateSymbolsPass.cs b/src/Generator/Passes/GenerateSymbolsPass.cs index ae910b05..b23fb5c0 100644 --- a/src/Generator/Passes/GenerateSymbolsPass.cs +++ b/src/Generator/Passes/GenerateSymbolsPass.cs @@ -115,7 +115,6 @@ namespace CppSharp.Passes var method = function as Method; bool isInImplicitSpecialization; var declarationContext = function.Namespace; - var @class = declarationContext as Class; do { isInImplicitSpecialization = diff --git a/src/Generator/Passes/SymbolsCodeGenerator.cs b/src/Generator/Passes/SymbolsCodeGenerator.cs index 380ad0c1..18e6a9c7 100644 --- a/src/Generator/Passes/SymbolsCodeGenerator.cs +++ b/src/Generator/Passes/SymbolsCodeGenerator.cs @@ -158,7 +158,7 @@ namespace CppSharp.Passes bool needSubclass = method.Access == AccessSpecifier.Protected || @class.IsAbstract; if (needSubclass) { - Write($"extern \"C\" void {wrapper}({signature}) "); + Write($"extern \"C\" {GetExporting()}void {wrapper}({signature}) "); WriteLine($"{{ ::new ({Helpers.InstanceField}) {wrapper}{method.Namespace.Name}({@params}); }}"); } else