From 6b0784c6ca01f18355249d6aaa1ed823b2013202 Mon Sep 17 00:00:00 2001 From: the_fiddler Date: Sun, 5 Dec 2010 16:03:42 +0000 Subject: [PATCH] * CppSpecWriter.cs: Replace String[] parameters by String*, as the former is not valid C++ syntax. --- Source/Bind/CppSpecWriter.cs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Source/Bind/CppSpecWriter.cs b/Source/Bind/CppSpecWriter.cs index 9e233671..247bb759 100644 --- a/Source/Bind/CppSpecWriter.cs +++ b/Source/Bind/CppSpecWriter.cs @@ -208,6 +208,7 @@ namespace Bind { last_delegate = d; var parameters = d.Parameters.ToString() + .Replace("String[]", "String*") .Replace("[OutAttribute]", String.Empty); sw.WriteLine("typedef {0} (*p{1}){2};", d.ReturnType, d.Name, parameters); sw.WriteLine("static p{0} {0};", d.Name); @@ -261,7 +262,7 @@ namespace Bind WriteDelegate(sw, f.WrappedDelegate, ref last_delegate); } sw.Unindent(); - sw.WriteLine("}"); + sw.WriteLine("};"); // Write wrappers last_delegate = null; @@ -273,6 +274,7 @@ namespace Bind last_delegate = f.WrappedDelegate; var parameters = f.WrappedDelegate.Parameters.ToString() + .Replace("String[]", "String*") .Replace("[OutAttribute]", String.Empty); sw.WriteLine("static inline {0} {1}{2}", f.WrappedDelegate.ReturnType, f.TrimmedName, parameters); @@ -294,17 +296,16 @@ namespace Bind sw.WriteLine("};"); } } - - sw.Unindent(); - sw.WriteLine("};"); } static void WriteMethodBody(BindStreamWriter sw, Function f) { + var callstring = f.Parameters.CallString() + .Replace("String[]", "String*"); if (f.ReturnType != null && !f.ReturnType.ToString().ToLower().Contains("void")) - sw.WriteLine("return Delegates::{0}{1};", f.WrappedDelegate.Name, f.Parameters.CallString()); + sw.WriteLine("return Delegates::{0}{1};", f.WrappedDelegate.Name, callstring); else - sw.WriteLine("Delegates::{0}{1};", f.WrappedDelegate.Name, f.Parameters.CallString()); + sw.WriteLine("Delegates::{0}{1};", f.WrappedDelegate.Name, callstring); } static DocProcessor processor = new DocProcessor(Path.Combine(Settings.DocPath, Settings.DocFile));