From 91ef36aad8e70e9592f0b043edd97a8fd1fa80e6 Mon Sep 17 00:00:00 2001 From: triton Date: Wed, 23 Jan 2013 10:21:16 +0000 Subject: [PATCH] Add an explicitly dereference if trying to wrap class-based pointer types when doing class managed to native marshaling. --- src/Generator/Generators/CLI/CLIMarshal.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Generator/Generators/CLI/CLIMarshal.cs b/src/Generator/Generators/CLI/CLIMarshal.cs index 415016c9..b3af0139 100644 --- a/src/Generator/Generators/CLI/CLIMarshal.cs +++ b/src/Generator/Generators/CLI/CLIMarshal.cs @@ -398,14 +398,19 @@ namespace Cxxi.Generators.CLI } else { - Return = string.Format("(::{0}*)&{1}", @class.OriginalName, + if (!Context.Parameter.Type.IsPointer()) + Return = "*"; + + Return += string.Format("(::{0}*)&{1}", @class.QualifiedOriginalName, Context.Parameter.Name); } - } else { - Return = string.Format("{0}->NativePtr", Context.Parameter.Name); + if (!Context.Parameter.Type.IsPointer()) + Return = "*"; + + Return += string.Format("{0}->NativePtr", Context.Parameter.Name); } return true;