]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Use store_local and get_local_cvalue in postfix expressions
authorLuca Bruno <lucabru@src.gnome.org>
Tue, 3 May 2011 13:56:14 +0000 (15:56 +0200)
committerLuca Bruno <lucabru@src.gnome.org>
Tue, 3 May 2011 13:56:14 +0000 (15:56 +0200)
codegen/valaccodebasemodule.vala

index 1f4c408ba91963a1410a72a87e0a92af810203cb..bc6d433411b1a4eec00334e16c7cd7b29cb63e3c 100644 (file)
@@ -3743,19 +3743,19 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                if (ma != null) {
                        // property postfix expression
                        var prop = (Property) ma.symbol_reference;
-                       
+
                        // assign current value to temp variable
                        var temp_decl = get_temp_variable (prop.property_type, true, expr, false);
                        emit_temp_var (temp_decl);
-                       ccode.add_assignment (get_variable_cexpression (temp_decl.name), get_cvalue (expr.inner));
-                       
+                       store_local (temp_decl, expr.inner.target_value, true);
+
                        // increment/decrement property
                        var op = expr.increment ? CCodeBinaryOperator.PLUS : CCodeBinaryOperator.MINUS;
                        var cexpr = new CCodeBinaryExpression (op, get_variable_cexpression (temp_decl.name), new CCodeConstant ("1"));
                        store_property (prop, ma.inner, new GLibValue (expr.value_type, cexpr));
-                       
+
                        // return previous value
-                       set_cvalue (expr, get_variable_cexpression (temp_decl.name));
+                       expr.target_value = get_local_cvalue (temp_decl);
                        return;
                }
 
@@ -3767,7 +3767,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                        // assign current value to temp variable
                        var temp_decl = get_temp_variable (expr.inner.value_type, true, expr, false);
                        emit_temp_var (temp_decl);
-                       ccode.add_assignment (get_variable_cexpression (temp_decl.name), get_cvalue (expr.inner));
+                       store_local (temp_decl, expr.inner.target_value, true);
 
                        // increment/decrement variable
                        var op = expr.increment ? CCodeBinaryOperator.PLUS : CCodeBinaryOperator.MINUS;
@@ -3775,7 +3775,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                        ccode.add_assignment (get_cvalue (expr.inner), cexpr);
 
                        // return previous value
-                       set_cvalue (expr, get_variable_cexpression (temp_decl.name));
+                       expr.target_value = get_local_cvalue (temp_decl);
                }
        }