[vala] Fix CCodeNode.line for variable initializers and return statements



commit 220c0566a80d433819e2632c3b48f3038d39e02a
Author: Didier 'Ptitjes <ptitjes free fr>
Date:   Sun Sep 27 01:09:31 2009 +0200

    Fix CCodeNode.line for variable initializers and return statements

 codegen/valaccodebasemodule.vala |   17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)
---
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index 96835b2..ed1eb38 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -2082,6 +2082,9 @@ internal class Vala.CCodeBaseModule : CCodeModule {
 			}
 		} else {
 			var cvar = new CCodeVariableDeclarator (get_variable_cname (local.name), rhs, local.variable_type.get_cdeclarator_suffix ());
+			if (rhs != null) {
+				cvar.line = rhs.line;
+			}
 
 			var cdecl = new CCodeDeclaration (local.variable_type.get_cname ());
 			cdecl.add_declarator (cvar);
@@ -2934,9 +2937,11 @@ internal class Vala.CCodeBaseModule : CCodeModule {
 				}
 			}
 
-			cfrag.append (new CCodeReturnStatement ());
+			var creturn = new CCodeReturnStatement ();
+			cfrag.append (creturn);
 
 			stmt.ccodenode = cfrag;
+			creturn.line = stmt.ccodenode.line;
 		} else {
 			Symbol return_expression_symbol = null;
 
@@ -3023,16 +3028,22 @@ internal class Vala.CCodeBaseModule : CCodeModule {
 				}
 			}
 
+			CCodeReturnStatement creturn = null;
 			if (current_method == null || !current_method.coroutine) {
 				// structs are returned via out parameter
 				if (current_return_type.is_real_non_null_struct_type()) {
-					cfrag.append (new CCodeReturnStatement ());
+					creturn = new CCodeReturnStatement ();
+					cfrag.append (creturn);
 				} else {
-					cfrag.append (new CCodeReturnStatement (new CCodeIdentifier ("result")));
+					creturn = new CCodeReturnStatement (new CCodeIdentifier ("result"));
+					cfrag.append (creturn);
 				}
 			}
 
 			stmt.ccodenode = cfrag;
+			if (creturn != null) {
+				creturn.line = stmt.ccodenode.line;
+			}
 
 			create_temp_decl (stmt, stmt.return_expression.temp_vars);
 



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