From: Jürg Billeter Date: Sun, 11 Jan 2009 00:55:08 +0000 (+0000) Subject: Fix crash when assigning to dynamic properties X-Git-Tag: VALA_0_5_6~58 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6d91ed972197cd1eb36282c7fc752a30d174393a;p=thirdparty%2Fvala.git Fix crash when assigning to dynamic properties 2009-01-11 Jürg Billeter * vala/valamemberaccess.vala: * vala/valasemanticanalyzer.vala: Fix crash when assigning to dynamic properties svn path=/trunk/; revision=2329 --- diff --git a/ChangeLog b/ChangeLog index cb7656662..54e3fd2b3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2009-01-11 Jürg Billeter + + * vala/valamemberaccess.vala: + * vala/valasemanticanalyzer.vala: + + Fix crash when assigning to dynamic properties + 2009-01-10 Jürg Billeter * vala/valacodenode.vala: diff --git a/vala/valamemberaccess.vala b/vala/valamemberaccess.vala index 3ddcc53f4..b7a31f1e1 100644 --- a/vala/valamemberaccess.vala +++ b/vala/valamemberaccess.vala @@ -1,6 +1,6 @@ /* valamemberaccess.vala * - * Copyright (C) 2006-2008 Jürg Billeter + * Copyright (C) 2006-2009 Jürg Billeter * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -350,7 +350,7 @@ public class Vala.MemberAccess : Expression { // dynamic property assignment var prop = new DynamicProperty (inner.value_type, member_name, source_reference); prop.access = SymbolAccessibility.PUBLIC; - prop.set_accessor = new PropertyAccessor (false, true, false, prop.property_type.copy (), null, prop.source_reference); + prop.set_accessor = new PropertyAccessor (false, true, false, null, null, prop.source_reference); prop.set_accessor.access = SymbolAccessibility.PUBLIC; prop.owner = inner.value_type.data_type.scope; dynamic_object_type.type_symbol.scope.add (null, prop); diff --git a/vala/valasemanticanalyzer.vala b/vala/valasemanticanalyzer.vala index 674081720..3fb94451e 100644 --- a/vala/valasemanticanalyzer.vala +++ b/vala/valasemanticanalyzer.vala @@ -163,11 +163,11 @@ public class Vala.SemanticAnalyzer : CodeVisitor { } else if (sym is Property) { var prop = (Property) sym; if (lvalue) { - if (prop.set_accessor != null) { + if (prop.set_accessor != null && prop.set_accessor.value_type != null) { return prop.set_accessor.value_type.copy (); } } else { - if (prop.get_accessor != null) { + if (prop.get_accessor != null && prop.get_accessor.value_type != null) { return prop.get_accessor.value_type.copy (); } }