From fddcea040514802bb2cc7879b073d7e01286df71 Mon Sep 17 00:00:00 2001 From: Dimitar Dobrev Date: Sun, 8 Sep 2013 22:31:11 +0300 Subject: [PATCH] Fixed the regression caused by methods always returning null regardless of the return type. Signed-off-by: Dimitar Dobrev --- src/Generator/Generators/CSharp/CSharpTextTemplate.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs index 2c715c22..3bc295c7 100644 --- a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs +++ b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs @@ -1779,9 +1779,13 @@ namespace CppSharp.Generators.CSharp var isIntPtr = retTypeName.Contains("IntPtr"); - if (retType.Type.IsPointer() && isIntPtr) + Type pointee; + if (retType.Type.IsPointerTo(out pointee) && isIntPtr) { - string @null = retType.Type.IsPrimitiveType(PrimitiveType.IntPtr) ? + PrimitiveType primitive; + string @null = (pointee.Desugar().IsPrimitiveType(out primitive) || + pointee.Desugar().IsPointer()) && + !CSharpTypePrinter.IsConstCharString(retType) ? "IntPtr.Zero" : "null"; WriteLine("if ({0} == global::System.IntPtr.Zero) return {1};", Generator.GeneratedIdentifier("ret"), @null);