From: Luca Bruno Date: Thu, 5 May 2011 20:41:46 +0000 (+0200) Subject: codegen: Replace trivial get_ref_cexpression calls with copy_value X-Git-Tag: 0.13.0~153 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e378bbcdaf55675aec356d0ac7a1ccb84156abce;p=thirdparty%2Fvala.git codegen: Replace trivial get_ref_cexpression calls with copy_value --- diff --git a/codegen/valaccodearraymodule.vala b/codegen/valaccodearraymodule.vala index 216d2f62a..d5622da78 100644 --- a/codegen/valaccodearraymodule.vala +++ b/codegen/valaccodearraymodule.vala @@ -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_ref_cexpression (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")), copy_value (new GLibValue (array_type.element_type, new CCodeElementAccess (new CCodeIdentifier ("self"), new CCodeIdentifier ("i"))), null, 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_ref_cexpression (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")), copy_value (new GLibValue (array_type.element_type, new CCodeElementAccess (new CCodeIdentifier ("self"), new CCodeIdentifier ("i"))), null, array_type)); } else { cfile.add_include ("string.h"); diff --git a/codegen/valaccodecontrolflowmodule.vala b/codegen/valaccodecontrolflowmodule.vala index 375aed603..6d9c37eb6 100644 --- a/codegen/valaccodecontrolflowmodule.vala +++ b/codegen/valaccodecontrolflowmodule.vala @@ -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_ref_cexpression (stmt.type_reference, element_expr, null, new StructValueType (gvalue_type)); + element_expr = copy_value (new GLibValue (stmt.type_reference, element_expr), null, new StructValueType (gvalue_type)); } visit_local_variable (stmt.element_variable); diff --git a/codegen/valagasyncmodule.vala b/codegen/valagasyncmodule.vala index 143911f9f..8bcdfd8b5 100644 --- a/codegen/valagasyncmodule.vala +++ b/codegen/valagasyncmodule.vala @@ -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_ref_cexpression (return_type, cexpr, null, return_type); + cexpr = copy_value (new GLibValue (return_type, cexpr), null, return_type); } ccode.add_assignment (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, new CCodeIdentifier ("result")), cexpr); } else if (!(return_type is VoidType)) {