From 931ff7d8735f34833b108ba37b2b976c73ad467f Mon Sep 17 00:00:00 2001 From: Joao Matos Date: Tue, 15 Dec 2020 02:43:05 +0000 Subject: [PATCH] Abstract marshaler into overridable method in NAPI sources. --- src/Generator/Generators/NAPI/NAPISources.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/Generator/Generators/NAPI/NAPISources.cs b/src/Generator/Generators/NAPI/NAPISources.cs index 4235af83..44066316 100644 --- a/src/Generator/Generators/NAPI/NAPISources.cs +++ b/src/Generator/Generators/NAPI/NAPISources.cs @@ -736,7 +736,7 @@ namespace CppSharp.Generators.Cpp ReturnType = param.QualifiedType }; - var marshal = new NAPIMarshalNativeToManagedPrinter(ctx); + var marshal = GetMarshalNativeToManagedPrinter(ctx); param.Visit(marshal); if (!string.IsNullOrWhiteSpace(marshal.Context.Before)) @@ -761,7 +761,7 @@ namespace CppSharp.Generators.Cpp ReturnType = function.ReturnType }; - var marshal = new NAPIMarshalNativeToManagedPrinter(ctx); + var marshal = GetMarshalNativeToManagedPrinter(ctx); function.ReturnType.Visit(marshal); if (!string.IsNullOrWhiteSpace(marshal.Context.Before)) @@ -811,6 +811,16 @@ namespace CppSharp.Generators.Cpp return marshals; } + public virtual MarshalPrinter GetMarshalManagedToNativePrinter(MarshalContext ctx) + { + return new NAPIMarshalManagedToNativePrinter(ctx); + } + + public virtual MarshalPrinter GetMarshalNativeToManagedPrinter(MarshalContext ctx) + { + return new NAPIMarshalNativeToManagedPrinter(ctx); + } + public virtual ParamMarshal GenerateFunctionParamMarshal(Parameter param, int paramIndex, Function function = null) { @@ -830,7 +840,7 @@ namespace CppSharp.Generators.Cpp Function = function }; - var marshal = new NAPIMarshalManagedToNativePrinter(ctx); + var marshal = GetMarshalManagedToNativePrinter(ctx); effectiveParam.Visit(marshal); if (string.IsNullOrEmpty(marshal.Context.Return))