]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Use store_temp_value in visit_end_full_expression
authorLuca Bruno <lucabru@src.gnome.org>
Fri, 1 Jul 2011 07:45:55 +0000 (09:45 +0200)
committerLuca Bruno <lucabru@src.gnome.org>
Wed, 6 Jul 2011 20:34:21 +0000 (22:34 +0200)
codegen/valaccodebasemodule.vala

index 27bd99cf3337b190553b070e7df7442f1ad2f96a..5ac3f1875d2b88f61e7965d0dc7d2b6e96f36c45 100644 (file)
@@ -3047,29 +3047,15 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                        return;
                }
 
-               LocalVariable full_expr_var = null;
-
                var local_decl = expr.parent_node as LocalVariable;
                if (!(local_decl != null && has_simple_struct_initializer (local_decl))) {
-                       var expr_type = expr.value_type;
-                       if (expr.target_type != null) {
-                               expr_type = expr.target_type;
-                       }
-
-                       full_expr_var = get_temp_variable (expr_type, true, expr, false);
-                       emit_temp_var (full_expr_var);
-               
-                       ccode.add_assignment (get_variable_cexpression (full_expr_var.name), get_cvalue (expr));
+                       expr.target_value = store_temp_value (expr.target_value, expr);
                }
-               
+
                foreach (var value in temp_ref_values) {
                        ccode.add_expression (destroy_value (value));
                }
 
-               if (full_expr_var != null) {
-                       set_cvalue (expr, get_variable_cexpression (full_expr_var.name));
-               }
-
                temp_ref_values.clear ();
        }