]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Do not try to convert from generic pointer twice when accessing generic
authorJürg Billeter <j@bitron.ch>
Sat, 17 Jan 2009 12:56:53 +0000 (12:56 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Sat, 17 Jan 2009 12:56:53 +0000 (12:56 +0000)
2009-01-17  Jürg Billeter  <j@bitron.ch>

* gobject/valaccodememberaccessmodule.vala:

Do not try to convert from generic pointer twice when accessing
generic field

* vala/valaassignment.vala:

Set formal_target_type to fix assignment to generic fields,
fixes bug 543486

svn path=/trunk/; revision=2371

ChangeLog
gobject/valaccodememberaccessmodule.vala
vala/valaassignment.vala

index 00255283855b41d6d3a81df55a63305c8d2de395..93279bfe1b5b8f895e7289df466e74d0f6c72406 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2009-01-17  Jürg Billeter  <j@bitron.ch>
+
+       * gobject/valaccodememberaccessmodule.vala:
+
+       Do not try to convert from generic pointer twice when accessing
+       generic field
+
+       * vala/valaassignment.vala:
+
+       Set formal_target_type to fix assignment to generic fields,
+       fixes bug 543486
+
 2009-01-17  Thijs Vermeir  <thijsvermeir@gmail.com>
 
        * vapi/packages/gstreamer-0.10/gstreamer-0.10-custom.vala:
index b061106dde94dfeb628bdd605ce584557c4c3952..b10b4cbcccf0b71b1d24d24b1f5ae67f84424729 100644 (file)
@@ -146,10 +146,6 @@ public class Vala.CCodeMemberAccessModule : CCodeControlFlowModule {
                        } else {
                                expr.ccodenode = new CCodeIdentifier (f.get_cname ());
                        }
-
-                       if (f.field_type.type_parameter != null && expr.value_type.type_parameter == null) {
-                               expr.ccodenode = convert_from_generic_pointer ((CCodeExpression) expr.ccodenode, expr.value_type);
-                       }
                } else if (expr.symbol_reference is Constant) {
                        var c = (Constant) expr.symbol_reference;
                        expr.ccodenode = new CCodeIdentifier (c.get_cname ());
index 98dc24c1bfe282695b0da708c6278772b529704b..28873528bcddf26950d367fc05823ca283c024f2 100644 (file)
@@ -139,6 +139,7 @@ public class Vala.Assignment : Expression {
                                var sig = (Signal) ma.symbol_reference;
                                right.target_type = new DelegateType (sig.get_delegate (ma.inner.value_type, this));
                        } else {
+                               right.formal_target_type = ma.formal_value_type;
                                right.target_type = ma.value_type;
                        }
                } else if (left is ElementAccess) {