From e891df479a6aea49dd0964b573c7352884836649 Mon Sep 17 00:00:00 2001 From: triton Date: Fri, 1 Mar 2013 17:47:24 +0000 Subject: [PATCH] Since now the native pointer of the wrapper class can be of a base class, we need to explicitly cast to the current type. --- src/Generator/Generators/CLI/CLIMarshal.cs | 2 ++ src/Generator/Generators/CLI/CLISourcesTemplate.cs | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Generator/Generators/CLI/CLIMarshal.cs b/src/Generator/Generators/CLI/CLIMarshal.cs index cac26b20..2f02bebf 100644 --- a/src/Generator/Generators/CLI/CLIMarshal.cs +++ b/src/Generator/Generators/CLI/CLIMarshal.cs @@ -433,10 +433,12 @@ namespace Cxxi.Generators.CLI && method.Conversion == MethodConversionKind.FunctionToInstanceMethod && Context.ParameterIndex == 0) { + Return.Write("(::{0}*)", @class.QualifiedOriginalName); Return.Write("NativePtr"); return; } + Return.Write("(::{0}*)", @class.QualifiedOriginalName); Return.Write("{0}->NativePtr", Context.Parameter.Name); } diff --git a/src/Generator/Generators/CLI/CLISourcesTemplate.cs b/src/Generator/Generators/CLI/CLISourcesTemplate.cs index a25bb4d4..89927c0a 100644 --- a/src/Generator/Generators/CLI/CLISourcesTemplate.cs +++ b/src/Generator/Generators/CLI/CLISourcesTemplate.cs @@ -312,7 +312,14 @@ namespace Cxxi.Generators.CLI } else { - Write(IsInstanceFunction(function) ? "NativePtr->" : "::"); + if (IsInstanceFunction(function)) + { + Write("((::{0}*)NativePtr)->", @class.QualifiedOriginalName); + } + else + { + Write("::"); + } Write("{0}(", function.QualifiedOriginalName); GenerateFunctionParams(function, @params);