From: Luca Bruno Date: Fri, 1 Jul 2011 07:45:55 +0000 (+0200) Subject: codegen: Use store_temp_value in visit_end_full_expression X-Git-Tag: 0.13.2~174 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d777977fb554e12c133bc8089302c629f97f808a;p=thirdparty%2Fvala.git codegen: Use store_temp_value in visit_end_full_expression --- diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index 27bd99cf3..5ac3f1875 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -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 (); }