From: Luca Bruno Date: Sat, 30 Apr 2011 19:54:19 +0000 (+0200) Subject: codegen: Use store_field for struct initializer X-Git-Tag: 0.13.0~184 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=95cef000515eac8e77bfda276a6bf6fab96c5dcb;p=thirdparty%2Fvala.git codegen: Use store_field for struct initializer --- diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index 3e5ec98b5..1f4c408ba 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -2139,7 +2139,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { var temp_decl = get_temp_variable (list.target_type, false, list); emit_temp_var (temp_decl); - var instance = get_variable_cexpression (get_variable_cname (temp_decl.name)); + var instance = get_local_cvalue (temp_decl); var field_it = st.get_fields ().iterator (); foreach (Expression expr in list.get_initializers ()) { @@ -2153,18 +2153,10 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { } } - var cexpr = get_cvalue (expr); - - string ctype = field.get_ctype (); - if (ctype != null) { - cexpr = new CCodeCastExpression (cexpr, ctype); - } - - var lhs = new CCodeMemberAccess (instance, field.get_cname ());; - ccode.add_assignment (lhs, cexpr); + store_field (field, instance, expr.target_value); } - set_cvalue (list, instance); + list.target_value = instance; } } else { var clist = new CCodeInitializerList ();