]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Use create_temp_value in copy_value
authorLuca Bruno <lucabru@src.gnome.org>
Sun, 19 Jun 2011 06:34:14 +0000 (08:34 +0200)
committerLuca Bruno <lucabru@src.gnome.org>
Wed, 6 Jul 2011 20:34:20 +0000 (22:34 +0200)
codegen/valaccodebasemodule.vala

index e0d9c4643709d2762611e4edd0ba776bf8262779..02daf58c4625d31aeedd7f55878682a32c5d2352 100644 (file)
@@ -3762,9 +3762,8 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                if (type is ValueType && !type.nullable) {
                        // normal value type, no null check
 
-                       var decl = get_temp_variable (type, false, node);
-                       emit_temp_var (decl);
-                       var ctemp = get_variable_cexpression (decl.name);
+                       var temp_value = create_temp_value (type, true, node, true);
+                       var ctemp = get_cvalue_ (temp_value);
 
                        var vt = (ValueType) type;
                        var st = (Struct) vt.type_symbol;
@@ -3795,15 +3794,13 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                                ccode.add_else ();
 
                                // g_value_init/copy must not be called for uninitialized values
-                               store_local (decl, value, true);
+                               store_value (temp_value, value);
                                ccode.close ();
                        } else {
                                ccode.add_expression (copy_call);
                        }
 
-                       result.value_type = decl.variable_type;
-                       result.cvalue = ctemp;
-                       return result;
+                       return temp_value;
                }
 
                /* (temp = expr, temp == NULL ? NULL : ref (temp))