]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Get rid of transform_expression
authorLuca Bruno <lucabru@src.gnome.org>
Sat, 7 May 2011 17:53:21 +0000 (19:53 +0200)
committerLuca Bruno <lucabru@src.gnome.org>
Sat, 7 May 2011 18:29:30 +0000 (20:29 +0200)
It was not possible to return any extra temporary variable from
transform_expression for compound types like arrays or delegates,
thus producing subtle bugs.

codegen/valaccodebasemodule.vala

index 6edcc7a952c4423edb9f69328ff471d1038d2fa8..4457374e3fc7bcf9b21663347b51221223cfa134 100644 (file)
@@ -5046,26 +5046,6 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                return result;
        }
 
-       // manage memory and implicit casts
-       public CCodeExpression transform_expression (CCodeExpression source_cexpr, DataType? expression_type, DataType? target_type, Expression? expr = null) {
-               if (expression_type == null) {
-                       return source_cexpr;
-               }
-               GLibValue value;
-               if (expr != null && expr.target_value != null) {
-                       value = ((GLibValue) expr.target_value).copy ();
-                       value.value_type = expression_type;
-                       value.cvalue = source_cexpr;
-               } else {
-                       value = new GLibValue (expression_type, source_cexpr);
-               }
-               CodeNode node = expr;
-               if (node == null) {
-                       node = expression_type;
-               }
-               return get_cvalue_ (transform_value (value, target_type, node));
-       }
-
        public TargetValue transform_value (TargetValue value, DataType? target_type, CodeNode node) {
                var type = value.value_type;
                var result = ((GLibValue) value).copy ();