From: Jürg Billeter Date: Mon, 13 Sep 2010 17:41:07 +0000 (+0200) Subject: Fix to_string method for enums X-Git-Tag: 0.11.0~58 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=39ade29474484c0309e76441897c531df73d5d47;p=thirdparty%2Fvala.git Fix to_string method for enums --- diff --git a/codegen/valaccodemethodcallmodule.vala b/codegen/valaccodemethodcallmodule.vala index f1dd34212..b480a718c 100644 --- a/codegen/valaccodemethodcallmodule.vala +++ b/codegen/valaccodemethodcallmodule.vala @@ -806,23 +806,23 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { function.add_parameter (new CCodeFormalParameter ("value", en.get_cname ())); // definition - var cblock = new CCodeBlock (); + push_context (new EmitContext ()); + push_function (function); - var cswitch = new CCodeSwitchStatement (new CCodeConstant ("value")); + ccode.open_switch (new CCodeConstant ("value")); foreach (var enum_value in en.get_values ()) { - cswitch.add_statement (new CCodeCaseStatement (new CCodeIdentifier (enum_value.get_cname ()))); - cswitch.add_statement (new CCodeReturnStatement (new CCodeConstant ("\""+enum_value.get_cname ()+"\""))); + ccode.add_case (new CCodeIdentifier (enum_value.get_cname ())); + ccode.add_return (new CCodeConstant ("\""+enum_value.get_cname ()+"\"")); } - cblock.add_statement (cswitch); - cblock.add_statement (new CCodeReturnStatement (new CCodeConstant ("NULL"))); + ccode.close (); + ccode.add_return (new CCodeConstant ("NULL")); // append to file - - cfile.add_type_member_declaration (function.copy ()); - - function.block = cblock; + cfile.add_function_declaration (function); cfile.add_function (function); + pop_context (); + return to_string_func; } }