From cc1eb14fcc0c830adbae3f61964c3391c50b9af3 Mon Sep 17 00:00:00 2001 From: triton Date: Wed, 27 Feb 2013 01:56:43 +0000 Subject: [PATCH] Cleaned up the constructor generation logic. --- .../Generators/CLI/CLISourcesTemplate.cs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/Generator/Generators/CLI/CLISourcesTemplate.cs b/src/Generator/Generators/CLI/CLISourcesTemplate.cs index d6f51e30..c2861d1f 100644 --- a/src/Generator/Generators/CLI/CLISourcesTemplate.cs +++ b/src/Generator/Generators/CLI/CLISourcesTemplate.cs @@ -141,18 +141,20 @@ namespace Cxxi.Generators.CLI WriteStartBraceIndent(); + var nativePtr = "native"; + + if (isIntPtr) + { + WriteLine("auto __native = (::{0}*)native.ToPointer();", + @class.QualifiedOriginalName); + nativePtr = "__native"; + } + if (@class.IsRefType) { if (!hasBase) { - Write("NativePtr = "); - - if (isIntPtr) - Write("({0})", nativeType); - Write("native"); - if (isIntPtr) - Write(".ToPointer()"); - WriteLine(";"); + WriteLine("NativePtr = {0};", nativePtr); } } else