From: Jürg Billeter Date: Sun, 15 Jun 2008 22:46:05 +0000 (+0000) Subject: Free error variable in catch clauses, fixes bug 538331 X-Git-Tag: VALA_0_3_4~60 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=77cb555eadc640bf973e98b7439edf0c470b8645;p=thirdparty%2Fvala.git Free error variable in catch clauses, fixes bug 538331 2008-06-16 Jürg Billeter * vala/valasemanticanalyzer.vala: * gobject/valaccodegenerator.vala: Free error variable in catch clauses, fixes bug 538331 svn path=/trunk/; revision=1593 --- diff --git a/ChangeLog b/ChangeLog index 0417be272..24d979bcd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-06-16 Jürg Billeter + + * vala/valasemanticanalyzer.vala: + * gobject/valaccodegenerator.vala: + + Free error variable in catch clauses, fixes bug 538331 + 2008-06-16 Jürg Billeter * vala/valaerrortype.vala: diff --git a/gobject/valaccodegenerator.vala b/gobject/valaccodegenerator.vala index ceac8b9cc..4eb082331 100644 --- a/gobject/valaccodegenerator.vala +++ b/gobject/valaccodegenerator.vala @@ -2477,6 +2477,10 @@ public class Vala.CCodeGenerator : CodeGenerator { } public override void visit_catch_clause (CatchClause clause) { + if (clause.error_variable != null) { + clause.error_variable.active = true; + } + current_method_inner_error = true; clause.accept_children (this); diff --git a/vala/valasemanticanalyzer.vala b/vala/valasemanticanalyzer.vala index 6abd6d9cf..09e9a5cc6 100644 --- a/vala/valasemanticanalyzer.vala +++ b/vala/valasemanticanalyzer.vala @@ -1227,6 +1227,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor { clause.error_variable = new LocalVariable (clause.error_type.copy (), clause.variable_name); clause.body.scope.add (clause.variable_name, clause.error_variable); + clause.body.add_local_variable (clause.error_variable); } else { clause.error_type = new ErrorType (null, clause.source_reference); }