[vala] Fix CCodeNode.line for variable initializers and return statements
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [vala] Fix CCodeNode.line for variable initializers and return statements
- Date: Sun, 27 Sep 2009 13:38:55 +0000 (UTC)
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]