]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Drop Expression dependency in copy_value
authorLuca Bruno <lucabru@src.gnome.org>
Sat, 7 May 2011 09:15:23 +0000 (11:15 +0200)
committerLuca Bruno <lucabru@src.gnome.org>
Sat, 7 May 2011 09:15:23 +0000 (11:15 +0200)
codegen/valaccodearraymodule.vala
codegen/valaccodebasemodule.vala
codegen/valaccodecontrolflowmodule.vala
codegen/valagasyncmodule.vala

index 4f8a918da8105cd2c07f37030a8072058bba34e9..c40863abce7c43b57152970db91e6847dcd6ffe2 100644 (file)
@@ -409,7 +409,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
                cfile.add_function (fun);
        }
 
-       public override TargetValue? copy_value (TargetValue value, Expression? expr, CodeNode node) {
+       public override TargetValue? copy_value (TargetValue value, CodeNode node) {
                var type = value.value_type;
                var cexpr = get_cvalue_ (value);
 
@@ -417,7 +417,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
                        var array_type = (ArrayType) type;
 
                        if (!array_type.fixed_length) {
-                               return base.copy_value (value, expr, node);
+                               return base.copy_value (value, node);
                        }
 
                        var decl = get_temp_variable (type, false, node);
@@ -436,7 +436,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
 
                        return new GLibValue (type, ccomma);
                } else {
-                       return base.copy_value (value, expr, node);
+                       return base.copy_value (value, node);
                }
        }
 
@@ -525,7 +525,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
                                           new CCodeBinaryExpression (CCodeBinaryOperator.LESS_THAN, new CCodeIdentifier ("i"), new CCodeIdentifier ("length")),
                                           new CCodeUnaryExpression (CCodeUnaryOperator.POSTFIX_INCREMENT, new CCodeIdentifier ("i")));
 
-                       ccode.add_assignment (new CCodeElementAccess (new CCodeIdentifier ("result"), new CCodeIdentifier ("i")), get_cvalue_ (copy_value (new GLibValue (array_type.element_type, new CCodeElementAccess (new CCodeIdentifier ("self"), new CCodeIdentifier ("i"))), null, array_type)));
+                       ccode.add_assignment (new CCodeElementAccess (new CCodeIdentifier ("result"), new CCodeIdentifier ("i")), get_cvalue_ (copy_value (new GLibValue (array_type.element_type, new CCodeElementAccess (new CCodeIdentifier ("self"), new CCodeIdentifier ("i"))), array_type)));
                        ccode.close ();
 
                        ccode.add_return (new CCodeIdentifier ("result"));
@@ -579,7 +579,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
                                           new CCodeUnaryExpression (CCodeUnaryOperator.POSTFIX_INCREMENT, new CCodeIdentifier ("i")));
 
 
-                       ccode.add_assignment (new CCodeElementAccess (new CCodeIdentifier ("dest"), new CCodeIdentifier ("i")), get_cvalue_ (copy_value (new GLibValue (array_type.element_type, new CCodeElementAccess (new CCodeIdentifier ("self"), new CCodeIdentifier ("i"))), null, array_type)));
+                       ccode.add_assignment (new CCodeElementAccess (new CCodeIdentifier ("dest"), new CCodeIdentifier ("i")), get_cvalue_ (copy_value (new GLibValue (array_type.element_type, new CCodeElementAccess (new CCodeIdentifier ("self"), new CCodeIdentifier ("i"))), array_type)));
                } else {
                        cfile.add_include ("string.h");
 
index da7370718a324043214f9d40d939c46bca0a091f..e6afe37c3598e782a87ec84adb43f28a4e27f9a8 100644 (file)
@@ -3707,11 +3707,11 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                        value.delegate_target_cvalue = get_delegate_target_cvalue (expr.target_value);
                        value.delegate_target_destroy_notify_cvalue = get_delegate_target_destroy_notify_cvalue (expr.target_value);
                }
-               var result = copy_value (value, expr, node);
+               var result = copy_value (value, node);
                return get_cvalue_ (result);
        }
 
-       public virtual TargetValue? copy_value (TargetValue value, Expression? expr, CodeNode node) {
+       public virtual TargetValue? copy_value (TargetValue value, CodeNode node) {
                var type = value.value_type;
                var cexpr = get_cvalue_ (value);
 
@@ -3820,7 +3820,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
 
                if (!(type is ArrayType) && get_non_null (value) && !is_ref_function_void (type)) {
                        // expression is non-null
-                       ccall.add_argument (get_cvalue (expr));
+                       ccall.add_argument (cexpr);
                        
                        return new GLibValue (type, ccall);
                } else {
index 29b1412b5b70f8b216cdc30071fb4bf8acb0d054..59756d19dd0f5bac7f94fa44a85cdc157a7d9706 100644 (file)
@@ -328,7 +328,7 @@ public abstract class Vala.CCodeControlFlowModule : CCodeMethodModule {
                        CCodeExpression element_expr = new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, get_item);
 
                        if (stmt.type_reference.value_owned) {
-                               element_expr = get_cvalue_ (copy_value (new GLibValue (stmt.type_reference, element_expr), null, new StructValueType (gvalue_type)));
+                               element_expr = get_cvalue_ (copy_value (new GLibValue (stmt.type_reference, element_expr), new StructValueType (gvalue_type)));
                        }
 
                        visit_local_variable (stmt.element_variable);
index 370961c0f5c3a295f7b3a23c2621de3bf1675ff9..6bd095afc03a9fe64bdba35b793cb029bf8b401f 100644 (file)
@@ -444,7 +444,7 @@ public class Vala.GAsyncModule : GSignalModule {
                        // structs are returned via out parameter
                        CCodeExpression cexpr = new CCodeMemberAccess.pointer (data_var, "result");
                        if (requires_copy (return_type)) {
-                               cexpr = get_cvalue_ (copy_value (new GLibValue (return_type, cexpr), null, return_type));
+                               cexpr = get_cvalue_ (copy_value (new GLibValue (return_type, cexpr), return_type));
                        }
                        ccode.add_assignment (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, new CCodeIdentifier ("result")), cexpr);
                } else if (!(return_type is VoidType)) {