From: Jürg Billeter Date: Sun, 10 Oct 2010 09:57:12 +0000 (+0200) Subject: codegen: Use builder API for regex init function X-Git-Tag: 0.11.1~145 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=074717dae750526cc4d92c771bae0d5cefa25a18;p=thirdparty%2Fvala.git codegen: Use builder API for regex init function --- diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index 9b01ab5c7..2d1aa31f3 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -3409,28 +3409,30 @@ public class Vala.CCodeBaseModule : CodeGenerator { fun.add_parameter (new CCodeFormalParameter ("re", "GRegex**")); fun.add_parameter (new CCodeFormalParameter ("pattern", "const gchar *")); fun.add_parameter (new CCodeFormalParameter ("match_options", "GRegexMatchFlags")); - fun.block = new CCodeBlock (); + + push_function (fun); var once_enter_call = new CCodeFunctionCall (new CCodeIdentifier ("g_once_init_enter")); once_enter_call.add_argument (new CCodeConstant ("(volatile gsize*) re")); - - var if_block = new CCodeBlock (); + ccode.open_if (once_enter_call); var regex_new_call = new CCodeFunctionCall (new CCodeIdentifier ("g_regex_new")); regex_new_call.add_argument (new CCodeConstant ("pattern")); regex_new_call.add_argument (new CCodeConstant ("match_options")); regex_new_call.add_argument (new CCodeConstant ("0")); regex_new_call.add_argument (new CCodeConstant ("NULL")); - if_block.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeIdentifier ("GRegex* val"), regex_new_call))); + ccode.add_expression (new CCodeAssignment (new CCodeIdentifier ("GRegex* val"), regex_new_call)); var once_leave_call = new CCodeFunctionCall (new CCodeIdentifier ("g_once_init_leave")); once_leave_call.add_argument (new CCodeConstant ("(volatile gsize*) re")); once_leave_call.add_argument (new CCodeConstant ("(gsize) val")); - if_block.add_statement (new CCodeExpressionStatement (once_leave_call)); + ccode.add_expression (once_leave_call); + + ccode.close (); + + ccode.add_return (new CCodeIdentifier ("*re")); - var if_stat = new CCodeIfStatement (once_enter_call, if_block); - fun.block.add_statement (if_stat); - fun.block.add_statement (new CCodeReturnStatement (new CCodeIdentifier ("*re"))); + pop_function (); cfile.add_function (fun); }