From 828f0c0a8b86f85fc34f993c71abfaa742f1ebcc Mon Sep 17 00:00:00 2001 From: the_fiddler Date: Sun, 5 Dec 2010 15:33:09 +0000 Subject: [PATCH] * CppSpecWriter.cs: Fixed handling of return types in wrappers. Removed [OutAttribute] from the header. --- Source/Bind/CppSpecWriter.cs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Source/Bind/CppSpecWriter.cs b/Source/Bind/CppSpecWriter.cs index 9bb2ad02..f1ace445 100644 --- a/Source/Bind/CppSpecWriter.cs +++ b/Source/Bind/CppSpecWriter.cs @@ -207,7 +207,9 @@ namespace Bind if (d != last_delegate) { last_delegate = d; - var parameters = d.Parameters.ToString().Replace(".", "::"); + var parameters = d.Parameters.ToString() + .Replace(".", "::") + .Replace("[OutAttribute]", String.Empty); sw.WriteLine("typedef {0} (*p{1}){2};", d.ReturnType, d.Name, parameters); sw.WriteLine("static p{0} {0};", d.Name); } @@ -271,7 +273,9 @@ namespace Bind continue; last_delegate = f.WrappedDelegate; - var parameters = f.WrappedDelegate.Parameters.ToString().Replace(".", "::"); + var parameters = f.WrappedDelegate.Parameters.ToString() + .Replace(".", "::") + .Replace("[OutAttribute]", String.Empty); sw.WriteLine("static inline {0} {1}{2}", f.WrappedDelegate.ReturnType, f.TrimmedName, parameters); sw.WriteLine("{"); @@ -299,10 +303,10 @@ namespace Bind static void WriteMethodBody(BindStreamWriter sw, Function f) { - if (f.ReturnType != null) - sw.WriteLine("return Delegates::{0}{1}", f.WrappedDelegate.Name, f.CallString()); + if (f.ReturnType != null && !f.ReturnType.ToString().ToLower().Contains("void")) + sw.WriteLine("return Delegates::{0}{1}", f.WrappedDelegate.Name, f.Parameters.CallString()); else - sw.WriteLine("Delegates::{0}{1}", f.WrappedDelegate.Name, f.CallString()); + sw.WriteLine("Delegates::{0}{1}", f.WrappedDelegate.Name, f.Parameters.CallString()); } static DocProcessor processor = new DocProcessor(Path.Combine(Settings.DocPath, Settings.DocFile));