[vala] girwriter: Write return value before parameters



commit 0f0bda04f845259a36918934755ddab172e27a17
Author: JÃrg Billeter <j bitron ch>
Date:   Sun Jun 24 17:32:27 2012 +0200

    girwriter: Write return value before parameters
    
    Fixes bug 669552.

 codegen/valagirwriter.vala |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)
---
diff --git a/codegen/valagirwriter.vala b/codegen/valagirwriter.vala
index 7a5cacf..3e5c316 100644
--- a/codegen/valagirwriter.vala
+++ b/codegen/valagirwriter.vala
@@ -826,6 +826,13 @@ public class Vala.GIRWriter : CodeVisitor {
 	private void write_params_and_return (List<Parameter> params, DataType? return_type, bool return_array_length, string? return_comment = null, bool constructor = false, DataType? instance_type = null, bool user_data = false) {
 		int last_index = 0;
 		bool ret_is_struct = return_type != null && return_type.is_real_non_null_struct_type ();
+
+		if (return_type != null && !ret_is_struct) {
+			write_param_or_return (return_type, false, ref last_index, return_array_length, null, return_comment, ParameterDirection.IN, constructor);
+		} else if (ret_is_struct) {
+			write_param_or_return (new VoidType (), false, ref last_index, false, null, return_comment, ParameterDirection.IN);
+		}
+
 		if (params.size != 0 || instance_type != null || (return_type is ArrayType && return_array_length) || (return_type is DelegateType) || ret_is_struct) {
 			write_indent ();
 			buffer.append_printf ("<parameters>\n");
@@ -866,12 +873,6 @@ public class Vala.GIRWriter : CodeVisitor {
 			write_indent ();
 			buffer.append_printf ("</parameters>\n");
 		}
-
-		if (return_type != null && !ret_is_struct) {
-			write_param_or_return (return_type, false, ref last_index, return_array_length, null, return_comment, ParameterDirection.IN, constructor);
-		} else if (ret_is_struct) {
-			write_param_or_return (new VoidType (), false, ref last_index, false, null, return_comment, ParameterDirection.IN);
-		}
 	}
 
 	public override void visit_delegate (Delegate cb) {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]