From: Jürg Billeter Date: Tue, 10 Aug 2010 07:08:25 +0000 (+0200) Subject: Append temporary variables in order of declaration X-Git-Tag: 0.9.6~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=19a510880df401f758f5a7bee3fdff8e57006596;p=thirdparty%2Fvala.git Append temporary variables in order of declaration --- diff --git a/codegen/valaccodearraymodule.vala b/codegen/valaccodearraymodule.vala index c2c2daff0..96558f5a5 100644 --- a/codegen/valaccodearraymodule.vala +++ b/codegen/valaccodearraymodule.vala @@ -52,7 +52,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule { var name_cnode = get_variable_cexpression (temp_var.name); int i = 0; - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); append_initializer_list (ce, name_cnode, expr.initializer_list, expr.rank, ref i); @@ -84,7 +84,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule { var name_cnode = get_variable_cexpression (temp_var.name); size.ccodenode = name_cnode; - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); csize = new CCodeAssignment (name_cnode, csize); } @@ -116,7 +116,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule { var name_cnode = get_variable_cexpression (temp_var.name); int i = 0; - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); ce.append_expression (new CCodeAssignment (name_cnode, gnew)); @@ -446,15 +446,15 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule { var len_var = get_temp_variable (int_type); len_var.source_reference = expr.source_reference; - temp_vars.insert (0, len_var); + temp_vars.add (len_var); var slice_var = get_temp_variable (expr.value_type, true, expr); - temp_vars.insert (0, slice_var); + temp_vars.add (slice_var); if (!is_pure_ccode_expression (cstart)) { // avoid double evaluation of start var start_var = get_temp_variable (int_type); - temp_vars.insert (0, start_var); + temp_vars.add (start_var); var start_assignment = new CCodeAssignment (get_variable_cexpression (start_var.name), cstart); ccomma.append_expression (start_assignment); @@ -692,7 +692,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule { } var decl = get_temp_variable (expression_type, false, node); - temp_vars.insert (0, decl); + temp_vars.add (decl); var ctemp = get_variable_cexpression (decl.name); diff --git a/codegen/valaccodeassignmentmodule.vala b/codegen/valaccodeassignmentmodule.vala index 1a9dca1b6..1e6b92107 100644 --- a/codegen/valaccodeassignmentmodule.vala +++ b/codegen/valaccodeassignmentmodule.vala @@ -134,13 +134,13 @@ public class Vala.CCodeAssignmentModule : CCodeMemberAccessModule { var lhs_value_type = assignment.left.value_type.copy (); string lhs_temp_name = "_tmp%d_".printf (next_temp_var_id++); var lhs_temp = new LocalVariable (lhs_value_type, "*" + lhs_temp_name); - temp_vars.insert (0, lhs_temp); + temp_vars.add (lhs_temp); outer_ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (lhs_temp_name), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, lhs))); lhs = new CCodeParenthesizedExpression (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, get_variable_cexpression (lhs_temp_name))); } var temp_decl = get_temp_variable (assignment.left.value_type, true, null, false); - temp_vars.insert (0, temp_decl); + temp_vars.add (temp_decl); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (temp_decl.name), rhs)); if (unref_old) { /* unref old value */ diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index 19e18c789..b2871c5d7 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -2029,12 +2029,12 @@ public class Vala.CCodeBaseModule : CCodeModule { if (!array_type.fixed_length) { for (int dim = 1; dim <= array_type.rank; dim++) { var len_var = new LocalVariable (int_type.copy (), head.get_array_length_cname (get_variable_cname (local.name), dim)); - temp_vars.insert (0, len_var); + temp_vars.add (len_var); } if (array_type.rank == 1) { var size_var = new LocalVariable (int_type.copy (), head.get_array_size_cname (get_variable_cname (local.name))); - temp_vars.insert (0, size_var); + temp_vars.add (size_var); } } } else if (local.variable_type is DelegateType) { @@ -2043,10 +2043,10 @@ public class Vala.CCodeBaseModule : CCodeModule { if (d.has_target) { // create variable to store delegate target var target_var = new LocalVariable (new PointerType (new VoidType ()), get_delegate_target_cname (get_variable_cname (local.name))); - temp_vars.insert (0, target_var); + temp_vars.add (target_var); if (deleg_type.value_owned) { var target_destroy_notify_var = new LocalVariable (new DelegateType ((Delegate) context.root.scope.lookup ("GLib").scope.lookup ("DestroyNotify")), get_delegate_target_destroy_notify_cname (get_variable_cname (local.name))); - temp_vars.insert (0, target_destroy_notify_var); + temp_vars.add (target_destroy_notify_var); } } } @@ -2069,7 +2069,7 @@ public class Vala.CCodeBaseModule : CCodeModule { var ccomma = new CCodeCommaExpression (); var temp_var = get_temp_variable (local.variable_type, true, local, false); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (temp_var.name), rhs)); for (int dim = 1; dim <= array_type.rank; dim++) { @@ -2094,7 +2094,7 @@ public class Vala.CCodeBaseModule : CCodeModule { var ccomma = new CCodeCommaExpression (); var temp_var = get_temp_variable (local.variable_type, true, local, false); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (temp_var.name), rhs)); CCodeExpression lhs_delegate_target_destroy_notify; @@ -3714,7 +3714,7 @@ public class Vala.CCodeBaseModule : CCodeModule { // assign current value to temp variable var temp_decl = get_temp_variable (prop.property_type, true, expr, false); - temp_vars.insert (0, temp_decl); + temp_vars.add (temp_decl); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (temp_decl.name), (CCodeExpression) expr.inner.ccodenode)); // increment/decrement property @@ -3825,7 +3825,7 @@ public class Vala.CCodeBaseModule : CCodeModule { // (copy (&expr, &temp), temp) var decl = get_temp_variable (expression_type, false, node); - temp_vars.insert (0, decl); + temp_vars.add (decl); var ctemp = get_variable_cexpression (decl.name); @@ -3925,7 +3925,7 @@ public class Vala.CCodeBaseModule : CCodeModule { return ccall; } else { var decl = get_temp_variable (expression_type, false, node, false); - temp_vars.insert (0, decl); + temp_vars.add (decl); var ctemp = get_variable_cexpression (decl.name); @@ -4445,7 +4445,7 @@ public class Vala.CCodeBaseModule : CCodeModule { var ccomma = new CCodeCommaExpression (); var temp_var = get_temp_variable (param.variable_type, true, null, false); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (temp_var.name), cexpr)); ccomma.append_expression (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_variable_cexpression (temp_var.name))); @@ -4683,7 +4683,7 @@ public class Vala.CCodeBaseModule : CCodeModule { /* (tmp = var, var = null, tmp) */ var ccomma = new CCodeCommaExpression (); var temp_decl = get_temp_variable (expr.value_type, true, expr, false); - temp_vars.insert (0, temp_decl); + temp_vars.add (temp_decl); var cvar = get_variable_cexpression (temp_decl.name); ccomma.append_expression (new CCodeAssignment (cvar, (CCodeExpression) expr.inner.ccodenode)); @@ -4701,7 +4701,7 @@ public class Vala.CCodeBaseModule : CCodeModule { var lbe = (BinaryExpression) expr.left; var temp_decl = get_temp_variable (lbe.right.value_type, true, null, false); - temp_vars.insert (0, temp_decl); + temp_vars.add (temp_decl); var cvar = get_variable_cexpression (temp_decl.name); var ccomma = new CCodeCommaExpression (); var clbe = (CCodeBinaryExpression) lbe.ccodenode; @@ -5091,7 +5091,7 @@ public class Vala.CCodeBaseModule : CCodeModule { // treat void* special to not leak memory with void* method parameters } else if (requires_destroy (expression_type)) { var decl = get_temp_variable (expression_type, true, expression_type, false); - temp_vars.insert (0, decl); + temp_vars.add (decl); temp_ref_vars.insert (0, decl); cexpr = new CCodeAssignment (get_variable_cexpression (decl.name), cexpr); @@ -5101,7 +5101,7 @@ public class Vala.CCodeBaseModule : CCodeModule { ccomma.append_expression (cexpr); for (int dim = 1; dim <= array_type.rank; dim++) { var len_decl = new LocalVariable (int_type.copy (), head.get_array_length_cname (decl.name, dim)); - temp_vars.insert (0, len_decl); + temp_vars.add (len_decl); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (len_decl.name), head.get_array_length_cexpression (expr, dim))); } ccomma.append_expression (get_variable_cexpression (decl.name)); @@ -5111,9 +5111,9 @@ public class Vala.CCodeBaseModule : CCodeModule { ccomma.append_expression (cexpr); var target_decl = new LocalVariable (new PointerType (new VoidType ()), get_delegate_target_cname (decl.name)); - temp_vars.insert (0, target_decl); + temp_vars.add (target_decl); var target_destroy_notify_decl = new LocalVariable (new DelegateType ((Delegate) context.root.scope.lookup ("GLib").scope.lookup ("DestroyNotify")), get_delegate_target_destroy_notify_cname (decl.name)); - temp_vars.insert (0, target_destroy_notify_decl); + temp_vars.add (target_destroy_notify_decl); CCodeExpression target_destroy_notify; ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (target_decl.name), get_delegate_target_cexpression (expr, out target_destroy_notify))); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (target_destroy_notify_decl.name), target_destroy_notify)); @@ -5132,7 +5132,7 @@ public class Vala.CCodeBaseModule : CCodeModule { if (gvalue_boxing) { // implicit conversion to GValue var decl = get_temp_variable (target_type, true, target_type); - temp_vars.insert (0, decl); + temp_vars.add (decl); var ccomma = new CCodeCommaExpression (); @@ -5224,7 +5224,7 @@ public class Vala.CCodeBaseModule : CCodeModule { cexpr = new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, cexpr); } else { var decl = get_temp_variable (expression_type, expression_type.value_owned, expression_type, false); - temp_vars.insert (0, decl); + temp_vars.add (decl); var ccomma = new CCodeCommaExpression (); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (decl.name), cexpr)); @@ -5346,7 +5346,7 @@ public class Vala.CCodeBaseModule : CCodeModule { var ccomma = new CCodeCommaExpression (); var temp_var = get_temp_variable (ma.inner.target_type, true, null, false); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (temp_var.name), instance)); ccomma.append_expression (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_variable_cexpression (temp_var.name))); @@ -5367,7 +5367,7 @@ public class Vala.CCodeBaseModule : CCodeModule { CCodeExpression rv; if (array_type != null && !prop.no_array_length) { var temp_var = get_temp_variable (prop.property_type, true, null, false); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); var ccomma = new CCodeCommaExpression (); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (temp_var.name), cexpr)); ccall.add_argument (get_variable_cexpression (temp_var.name)); diff --git a/codegen/valaccodecontrolflowmodule.vala b/codegen/valaccodecontrolflowmodule.vala index b6d9ca537..9daa5286c 100644 --- a/codegen/valaccodecontrolflowmodule.vala +++ b/codegen/valaccodecontrolflowmodule.vala @@ -47,7 +47,7 @@ public class Vala.CCodeControlFlowModule : CCodeMethodModule { void visit_string_switch_statement (SwitchStatement stmt) { // we need a temporary variable to save the property value var temp_var = get_temp_variable (stmt.expression.value_type, stmt.expression.value_type.value_owned, stmt, false); - stmt.expression.temp_vars.insert (0, temp_var); + stmt.expression.temp_vars.add (temp_var); var ctemp = get_variable_cexpression (temp_var.name); var cinit = new CCodeAssignment (ctemp, (CCodeExpression) stmt.expression.ccodenode); @@ -66,7 +66,7 @@ public class Vala.CCodeControlFlowModule : CCodeMethodModule { var ccond = new CCodeConditionalExpression (cisnull, new CCodeConstant ("0"), cquark); temp_var = get_temp_variable (gquark_type); - stmt.expression.temp_vars.insert (0, temp_var); + stmt.expression.temp_vars.add (temp_var); int label_count = 0; diff --git a/codegen/valaccodememberaccessmodule.vala b/codegen/valaccodememberaccessmodule.vala index 6e8ff0c63..9dfe2c7ba 100644 --- a/codegen/valaccodememberaccessmodule.vala +++ b/codegen/valaccodememberaccessmodule.vala @@ -80,7 +80,7 @@ public class Vala.CCodeMemberAccessModule : CCodeControlFlowModule { // instance expression has side-effects // store in temp. variable var temp_var = get_temp_variable (expr.inner.value_type, true, null, false); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); var ctemp = get_variable_cexpression (temp_var.name); inst = new CCodeAssignment (ctemp, pub_inst); expr.inner.ccodenode = ctemp; @@ -275,7 +275,7 @@ public class Vala.CCodeMemberAccessModule : CCodeControlFlowModule { var ccomma = new CCodeCommaExpression (); var temp_var = get_temp_variable (expr.inner.target_type, true, null, false); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (temp_var.name), pub_inst)); ccomma.append_expression (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_variable_cexpression (temp_var.name))); diff --git a/codegen/valaccodemethodcallmodule.vala b/codegen/valaccodemethodcallmodule.vala index c1187003e..ec2b13940 100644 --- a/codegen/valaccodemethodcallmodule.vala +++ b/codegen/valaccodemethodcallmodule.vala @@ -199,7 +199,7 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { var ccomma = new CCodeCommaExpression (); var temp_var = get_temp_variable (ma.inner.target_type, true, null, false); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (temp_var.name), instance)); ccomma.append_expression (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_variable_cexpression (temp_var.name))); @@ -352,14 +352,14 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { if (param.array_length_type != null) { if (param.direction == ParameterDirection.OUT) { var temp_array_length = get_temp_variable (new CType (param.array_length_type)); - temp_vars.insert (0, temp_array_length); + temp_vars.add (temp_array_length); array_length_expr = new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier (temp_array_length.name)); var comma = new CCodeCommaExpression (); LocalVariable? temp_result = null; if (!(m.return_type is VoidType)) { temp_result = get_temp_variable (m.return_type); - temp_vars.insert (0, temp_result); + temp_vars.add (temp_result); ccall_expr = new CCodeAssignment (get_variable_cexpression (temp_result.name), ccall_expr); } @@ -429,7 +429,7 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { var ccomma = new CCodeCommaExpression (); var temp_decl = get_temp_variable (arg.value_type, true, null, false); - temp_vars.insert (0, temp_decl); + temp_vars.add (temp_decl); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (temp_decl.name), cexpr)); cexpr = get_variable_cexpression (temp_decl.name); @@ -450,7 +450,7 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { var ccomma = new CCodeCommaExpression (); var temp_var = get_temp_variable (param.variable_type, param.variable_type.value_owned); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); cexpr = new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_variable_cexpression (temp_var.name)); if (param.direction == ParameterDirection.REF) { @@ -467,14 +467,14 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { ccomma.append_expression (ccall_expr); } else { ret_temp_var = get_temp_variable (itype.get_return_type (), true, null, false); - temp_vars.insert (0, ret_temp_var); + temp_vars.add (ret_temp_var); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (ret_temp_var.name), ccall_expr)); } var cassign_comma = new CCodeCommaExpression (); var assign_temp_var = get_temp_variable (unary.inner.value_type, unary.inner.value_type.value_owned, null, false); - temp_vars.insert (0, assign_temp_var); + temp_vars.add (assign_temp_var); cassign_comma.append_expression (new CCodeAssignment (get_variable_cexpression (assign_temp_var.name), transform_expression (get_variable_cexpression (temp_var.name), param.variable_type, unary.inner.value_type, arg))); @@ -534,7 +534,7 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { var temp_var = get_temp_variable (itype.get_return_type (), true, null, false); var temp_ref = get_variable_cexpression (temp_var.name); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); ccall_expr = new CCodeAssignment (temp_ref, ccall_expr); @@ -553,7 +553,7 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { } var temp_ref = get_variable_cexpression (temp_var.name); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); out_arg_map.set (get_param_pos (m.carray_length_parameter_position + 0.01 * dim), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref)); @@ -569,7 +569,7 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { var temp_var = get_temp_variable (new PointerType (new VoidType ())); var temp_ref = get_variable_cexpression (temp_var.name); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); out_arg_map.set (get_param_pos (m.cdelegate_target_parameter_position), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref)); @@ -579,7 +579,7 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { temp_var = get_temp_variable (new DelegateType ((Delegate) context.root.scope.lookup ("GLib").scope.lookup ("DestroyNotify"))); temp_ref = get_variable_cexpression (temp_var.name); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); out_arg_map.set (get_param_pos (m.cdelegate_target_parameter_position + 0.01), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref)); @@ -598,7 +598,7 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { var temp_var = get_temp_variable (itype.get_return_type (), true, null, false); var temp_ref = get_variable_cexpression (temp_var.name); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); ccall_expr = new CCodeAssignment (temp_ref, ccall_expr); @@ -611,7 +611,7 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { var temp_var = get_temp_variable (int_type); var temp_ref = get_variable_cexpression (temp_var.name); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); out_arg_map.set (get_param_pos (deleg.carray_length_parameter_position + 0.01 * dim), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref)); @@ -627,7 +627,7 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { var temp_var = get_temp_variable (new PointerType (new VoidType ())); var temp_ref = get_variable_cexpression (temp_var.name); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); out_arg_map.set (get_param_pos (deleg.cdelegate_target_parameter_position), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref)); @@ -684,7 +684,7 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { var temp_var = get_temp_variable (itype.get_return_type ()); var temp_ref = get_variable_cexpression (temp_var.name); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); out_arg_map.set (get_param_pos (-3), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref)); @@ -767,7 +767,7 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { var temp_decl = get_temp_variable (int_type); var temp_ref = get_variable_cexpression (temp_decl.name); - temp_vars.insert (0, temp_decl); + temp_vars.add (temp_decl); /* memset needs string.h */ source_declarations.add_include ("string.h"); diff --git a/codegen/valadovaarraymodule.vala b/codegen/valadovaarraymodule.vala index c532d174e..5d9272022 100644 --- a/codegen/valadovaarraymodule.vala +++ b/codegen/valadovaarraymodule.vala @@ -42,7 +42,7 @@ internal class Vala.DovaArrayModule : DovaMethodCallModule { var name_cnode = new CCodeIdentifier (temp_var.name); int i = 0; - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); append_initializer_list (ce, name_cnode, expr.initializer_list, ref i); diff --git a/codegen/valadovaassignmentmodule.vala b/codegen/valadovaassignmentmodule.vala index f1667de6c..85171bca7 100644 --- a/codegen/valadovaassignmentmodule.vala +++ b/codegen/valadovaassignmentmodule.vala @@ -106,13 +106,13 @@ internal class Vala.DovaAssignmentModule : DovaMemberAccessModule { var lhs_value_type = assignment.left.value_type.copy (); string lhs_temp_name = "_tmp%d_".printf (next_temp_var_id++); var lhs_temp = new LocalVariable (lhs_value_type, "*" + lhs_temp_name); - temp_vars.insert (0, lhs_temp); + temp_vars.add (lhs_temp); outer_ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (lhs_temp_name), new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, lhs))); lhs = new CCodeParenthesizedExpression (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, get_variable_cexpression (lhs_temp_name))); } var temp_decl = get_temp_variable (assignment.left.value_type); - temp_vars.insert (0, temp_decl); + temp_vars.add (temp_decl); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (temp_decl.name), rhs)); if (unref_old) { /* unref old value */ diff --git a/codegen/valadovabasemodule.vala b/codegen/valadovabasemodule.vala index cbb85c62e..d1b9a6b31 100644 --- a/codegen/valadovabasemodule.vala +++ b/codegen/valadovabasemodule.vala @@ -1559,7 +1559,7 @@ internal class Vala.DovaBaseModule : CCodeModule { // assign current value to temp variable var temp_decl = get_temp_variable (prop.property_type, true, expr); - temp_vars.insert (0, temp_decl); + temp_vars.add (temp_decl); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (temp_decl.name), (CCodeExpression) expr.inner.ccodenode)); // increment/decrement property @@ -1651,7 +1651,7 @@ internal class Vala.DovaBaseModule : CCodeModule { // (copy (&temp, 0, &expr, 0), temp) var decl = get_temp_variable (expression_type, false, node); - temp_vars.insert (0, decl); + temp_vars.add (decl); var ctemp = get_variable_cexpression (decl.name); @@ -1695,7 +1695,7 @@ internal class Vala.DovaBaseModule : CCodeModule { return ccall; } else { var decl = get_temp_variable (expression_type, false, node); - temp_vars.insert (0, decl); + temp_vars.add (decl); var ctemp = get_variable_cexpression (decl.name); @@ -1918,7 +1918,7 @@ internal class Vala.DovaBaseModule : CCodeModule { var ccomma = new CCodeCommaExpression (); var temp_var = get_temp_variable (arg.target_type); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (temp_var.name), cexpr)); ccomma.append_expression (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier (temp_var.name))); @@ -1974,7 +1974,7 @@ internal class Vala.DovaBaseModule : CCodeModule { if (expr.type_reference.data_type != null && expr.type_reference.data_type.get_full_name () == "Dova.Value") { // box value var temp_decl = get_temp_variable (expr.inner.value_type, true, expr); - temp_vars.insert (0, temp_decl); + temp_vars.add (temp_decl); var cvar = get_variable_cexpression (temp_decl.name); var ccomma = new CCodeCommaExpression (); @@ -1991,7 +1991,7 @@ internal class Vala.DovaBaseModule : CCodeModule { } else if (expr.inner.value_type.data_type != null && expr.inner.value_type.data_type.get_full_name () == "Dova.Value") { // unbox value var temp_decl = get_temp_variable (expr.type_reference, true, expr); - temp_vars.insert (0, temp_decl); + temp_vars.add (temp_decl); var cvar = get_variable_cexpression (temp_decl.name); var ccomma = new CCodeCommaExpression (); @@ -2034,7 +2034,7 @@ internal class Vala.DovaBaseModule : CCodeModule { /* (tmp = var, var = null, tmp) */ var ccomma = new CCodeCommaExpression (); var temp_decl = get_temp_variable (expr.value_type, true, expr); - temp_vars.insert (0, temp_decl); + temp_vars.add (temp_decl); var cvar = get_variable_cexpression (temp_decl.name); ccomma.append_expression (new CCodeAssignment (cvar, (CCodeExpression) expr.inner.ccodenode)); @@ -2190,7 +2190,7 @@ internal class Vala.DovaBaseModule : CCodeModule { // treat void* special to not leak memory with void* method parameters } else if (requires_destroy (expression_type)) { var decl = get_temp_variable (expression_type, true, expression_type); - temp_vars.insert (0, decl); + temp_vars.add (decl); temp_ref_vars.insert (0, decl); cexpr = new CCodeAssignment (get_variable_cexpression (decl.name), cexpr); } diff --git a/codegen/valadovamemberaccessmodule.vala b/codegen/valadovamemberaccessmodule.vala index 58fb664d8..3e6187379 100644 --- a/codegen/valadovamemberaccessmodule.vala +++ b/codegen/valadovamemberaccessmodule.vala @@ -75,7 +75,7 @@ internal class Vala.DovaMemberAccessModule : DovaControlFlowModule { // instance expression has side-effects // store in temp. variable var temp_var = get_temp_variable (expr.inner.value_type); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); var ctemp = new CCodeIdentifier (temp_var.name); inst = new CCodeAssignment (ctemp, pub_inst); expr.inner.ccodenode = ctemp; diff --git a/codegen/valadovamethodcallmodule.vala b/codegen/valadovamethodcallmodule.vala index aab0f3b47..14ada219c 100644 --- a/codegen/valadovamethodcallmodule.vala +++ b/codegen/valadovamethodcallmodule.vala @@ -85,7 +85,7 @@ internal class Vala.DovaMethodCallModule : DovaAssignmentModule { var ccomma = new CCodeCommaExpression (); var temp_var = get_temp_variable (ma.inner.target_type); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (temp_var.name), instance)); ccomma.append_expression (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_variable_cexpression (temp_var.name))); @@ -139,7 +139,7 @@ internal class Vala.DovaMethodCallModule : DovaAssignmentModule { var ccomma = new CCodeCommaExpression (); var temp_var = get_temp_variable (param.variable_type, param.variable_type.value_owned); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); cexpr = new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_variable_cexpression (temp_var.name)); if (param.direction == ParameterDirection.REF) { @@ -155,14 +155,14 @@ internal class Vala.DovaMethodCallModule : DovaAssignmentModule { ccomma.append_expression (ccall_expr); } else { ret_temp_var = get_temp_variable (itype.get_return_type ()); - temp_vars.insert (0, ret_temp_var); + temp_vars.add (ret_temp_var); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (ret_temp_var.name), ccall_expr)); } var cassign_comma = new CCodeCommaExpression (); var assign_temp_var = get_temp_variable (unary.inner.value_type, unary.inner.value_type.value_owned); - temp_vars.insert (0, assign_temp_var); + temp_vars.add (assign_temp_var); cassign_comma.append_expression (new CCodeAssignment (get_variable_cexpression (assign_temp_var.name), transform_expression (get_variable_cexpression (temp_var.name), param.variable_type, unary.inner.value_type, arg))); @@ -207,7 +207,7 @@ internal class Vala.DovaMethodCallModule : DovaAssignmentModule { var ccomma = new CCodeCommaExpression (); var temp_var = get_temp_variable (expr.value_type); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); if (expr.value_type is GenericType) { ccall.add_argument (get_variable_cexpression (temp_var.name)); } else { diff --git a/codegen/valadovavaluemodule.vala b/codegen/valadovavaluemodule.vala index ac3b6141e..fece4fc79 100644 --- a/codegen/valadovavaluemodule.vala +++ b/codegen/valadovavaluemodule.vala @@ -553,7 +553,7 @@ internal class Vala.DovaValueModule : DovaObjectModule { var temp_var = get_temp_variable (array_type, true, expr); var name_cnode = get_variable_cexpression (temp_var.name); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); int i = 0; foreach (Expression e in expr.get_expressions ()) { @@ -587,7 +587,7 @@ internal class Vala.DovaValueModule : DovaObjectModule { var temp_var = get_temp_variable (array_type, true, expr); var name_cnode = get_variable_cexpression (temp_var.name); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); int i = 0; foreach (Expression e in expr.get_expressions ()) { @@ -623,7 +623,7 @@ internal class Vala.DovaValueModule : DovaObjectModule { var key_temp_var = get_temp_variable (key_array_type, true, expr); var key_name_cnode = get_variable_cexpression (key_temp_var.name); - temp_vars.insert (0, key_temp_var); + temp_vars.add (key_temp_var); var value_array_type = new ArrayType (expr.map_value_type, 1, expr.source_reference); value_array_type.inline_allocated = true; @@ -633,7 +633,7 @@ internal class Vala.DovaValueModule : DovaObjectModule { var value_temp_var = get_temp_variable (value_array_type, true, expr); var value_name_cnode = get_variable_cexpression (value_temp_var.name); - temp_vars.insert (0, value_temp_var); + temp_vars.add (value_temp_var); for (int i = 0; i < length; i++) { key_ce.append_expression (new CCodeAssignment (new CCodeElementAccess (key_name_cnode, new CCodeConstant (i.to_string ())), (CCodeExpression) expr.get_keys ().get (i).ccodenode)); @@ -662,7 +662,7 @@ internal class Vala.DovaValueModule : DovaObjectModule { var type_temp_var = get_temp_variable (type_array_type, true, tuple); var type_name_cnode = get_variable_cexpression (type_temp_var.name); - temp_vars.insert (0, type_temp_var); + temp_vars.add (type_temp_var); var array_type = new ArrayType (new PointerType (new VoidType ()), 1, tuple.source_reference); array_type.inline_allocated = true; @@ -671,7 +671,7 @@ internal class Vala.DovaValueModule : DovaObjectModule { var temp_var = get_temp_variable (array_type, true, tuple); var name_cnode = get_variable_cexpression (temp_var.name); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); var type_ce = new CCodeCommaExpression (); var ce = new CCodeCommaExpression (); @@ -695,7 +695,7 @@ internal class Vala.DovaValueModule : DovaObjectModule { // tmp = expr, &tmp var element_temp_var = get_temp_variable (element_type); - temp_vars.insert (0, element_temp_var); + temp_vars.add (element_temp_var); ce.append_expression (new CCodeAssignment (get_variable_cexpression (element_temp_var.name), cexpr)); cexpr = new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier (element_temp_var.name)); } diff --git a/codegen/valagobjectmodule.vala b/codegen/valagobjectmodule.vala index d6ce29d13..33a828a05 100644 --- a/codegen/valagobjectmodule.vala +++ b/codegen/valagobjectmodule.vala @@ -793,7 +793,7 @@ public class Vala.GObjectModule : GTypeModule { var ccomma = new CCodeCommaExpression (); var temp_var = get_temp_variable (expr.value_type, false, expr, false); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); ccomma.append_expression (new CCodeAssignment (get_variable_cexpression (temp_var.name), (CCodeExpression) expr.ccodenode)); var is_floating_ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_object_is_floating")); diff --git a/codegen/valagsignalmodule.vala b/codegen/valagsignalmodule.vala index 8d09f301e..7765c7b7d 100644 --- a/codegen/valagsignalmodule.vala +++ b/codegen/valagsignalmodule.vala @@ -653,7 +653,7 @@ public class Vala.GSignalModule : GObjectModule { // get signal id ccomma = new CCodeCommaExpression (); var temp_decl = get_temp_variable (uint_type); - temp_vars.insert (0, temp_decl); + temp_vars.add (temp_decl); var parse_call = new CCodeFunctionCall (new CCodeIdentifier ("g_signal_parse_name")); parse_call.add_argument (sig.get_canonical_cconstant (signal_detail)); var decl_type = (TypeSymbol) sig.parent_symbol; @@ -665,7 +665,7 @@ public class Vala.GSignalModule : GObjectModule { parse_call.add_argument (new CCodeConstant ("FALSE")); } else { detail_temp_decl = get_temp_variable (gquark_type); - temp_vars.insert (0, detail_temp_decl); + temp_vars.add (detail_temp_decl); parse_call.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, new CCodeIdentifier (detail_temp_decl.name))); parse_call.add_argument (new CCodeConstant ("TRUE")); } diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala index 5781cd70e..ca61a3aeb 100644 --- a/codegen/valagtypemodule.vala +++ b/codegen/valagtypemodule.vala @@ -2047,7 +2047,7 @@ public class Vala.GTypeModule : GErrorModule { var ccomma = new CCodeCommaExpression (); var temp_var = get_temp_variable (new CType ("GEnumValue*"), false, expr, false); - temp_vars.insert (0, temp_var); + temp_vars.add (temp_var); var class_ref = new CCodeFunctionCall (new CCodeIdentifier ("g_type_class_ref")); class_ref.add_argument (new CCodeIdentifier (ma.inner.value_type.get_type_id ()));