From: Jürg Billeter Date: Sat, 17 Jan 2009 12:56:53 +0000 (+0000) Subject: Do not try to convert from generic pointer twice when accessing generic X-Git-Tag: VALA_0_5_6~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a2ec720f4183b912cf0a412aaa8a9742e4371f34;p=thirdparty%2Fvala.git Do not try to convert from generic pointer twice when accessing generic 2009-01-17 Jürg Billeter * 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 --- diff --git a/ChangeLog b/ChangeLog index 002552838..93279bfe1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2009-01-17 Jürg Billeter + + * 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 * vapi/packages/gstreamer-0.10/gstreamer-0.10-custom.vala: diff --git a/gobject/valaccodememberaccessmodule.vala b/gobject/valaccodememberaccessmodule.vala index b061106dd..b10b4cbcc 100644 --- a/gobject/valaccodememberaccessmodule.vala +++ b/gobject/valaccodememberaccessmodule.vala @@ -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 ()); diff --git a/vala/valaassignment.vala b/vala/valaassignment.vala index 98dc24c1b..28873528b 100644 --- a/vala/valaassignment.vala +++ b/vala/valaassignment.vala @@ -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) {