]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Use store_field for struct initializer
authorLuca Bruno <lucabru@src.gnome.org>
Sat, 30 Apr 2011 19:54:19 +0000 (21:54 +0200)
committerLuca Bruno <lucabru@src.gnome.org>
Sat, 30 Apr 2011 20:53:36 +0000 (22:53 +0200)
codegen/valaccodebasemodule.vala

index 3e5ec98b595272b73b6358655fc9855cc5501461..1f4c408ba91963a1410a72a87e0a92af810203cb 100644 (file)
@@ -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 ();