From: Jürg Billeter Date: Thu, 10 Aug 2006 15:50:14 +0000 (+0000) Subject: fix memory management in switch statements extend switch statement test X-Git-Tag: VALA_0_0_3~11 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=03da5213eccc29f9449ebad48159d030db500d77;p=thirdparty%2Fvala.git fix memory management in switch statements extend switch statement test 2006-08-10 Jürg Billeter * vala/valacodegenerator.vala: fix memory management in switch statements * tests/test-020.vala: extend switch statement test svn path=/trunk/; revision=98 --- diff --git a/vala/ChangeLog b/vala/ChangeLog index 85c7b0535..7e9f942ed 100644 --- a/vala/ChangeLog +++ b/vala/ChangeLog @@ -1,3 +1,9 @@ +2006-08-10 Jürg Billeter + + * vala/valacodegenerator.vala: fix memory management in switch + statements + * tests/test-020.vala: extend switch statement test + 2006-08-10 Jürg Billeter * vala/valacodegenerator.vala: support switch statements diff --git a/vala/tests/test-020.vala b/vala/tests/test-020.vala index f11cee87b..a0e851764 100644 --- a/vala/tests/test-020.vala +++ b/vala/tests/test-020.vala @@ -17,6 +17,9 @@ class Maman.Foo { case 0: stdout.printf (" 4"); break; + case 1: + stdout.printf (" BAD"); + break; default: stdout.printf (" BAD"); break; @@ -29,6 +32,9 @@ class Maman.Foo { default: stdout.printf (" 5"); break; + case 1: + stdout.printf (" BAD"); + break; } stdout.printf (" 6"); diff --git a/vala/vala/valacodegenerator.vala b/vala/vala/valacodegenerator.vala index bb00d793e..0a6a0071a 100644 --- a/vala/vala/valacodegenerator.vala +++ b/vala/vala/valacodegenerator.vala @@ -1529,8 +1529,8 @@ public class Vala.CodeGenerator : CodeVisitor { List default_statements = null; // generate nested if statements - CCodeStatement ctopstmt = null; - ref CCodeIfStatement coldif = null; + ref CCodeStatement ctopstmt = null; + CCodeIfStatement coldif = null; foreach (SwitchSection section in stmt.get_sections ()) { if (section.has_default_label ()) { default_statements = section.get_statements (); @@ -1747,11 +1747,7 @@ public class Vala.CodeGenerator : CodeVisitor { } public override void visit_boolean_literal (BooleanLiteral! expr) { - if (expr.value) { - expr.ccodenode = new CCodeConstant ("TRUE"); - } else { - expr.ccodenode = new CCodeConstant ("FALSE"); - } + expr.ccodenode = new CCodeConstant (expr.value ? "TRUE" : "FALSE"); } public override void visit_character_literal (CharacterLiteral! expr) {