vala r2329 - in trunk: . vala



Author: juergbi
Date: Sun Jan 11 00:55:08 2009
New Revision: 2329
URL: http://svn.gnome.org/viewvc/vala?rev=2329&view=rev

Log:
2009-01-11  JÃrg Billeter  <j bitron ch>

	* vala/valamemberaccess.vala:
	* vala/valasemanticanalyzer.vala:

	Fix crash when assigning to dynamic properties


Modified:
   trunk/ChangeLog
   trunk/vala/valamemberaccess.vala
   trunk/vala/valasemanticanalyzer.vala

Modified: trunk/vala/valamemberaccess.vala
==============================================================================
--- trunk/vala/valamemberaccess.vala	(original)
+++ trunk/vala/valamemberaccess.vala	Sun Jan 11 00:55:08 2009
@@ -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 @@
 						// 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);

Modified: trunk/vala/valasemanticanalyzer.vala
==============================================================================
--- trunk/vala/valasemanticanalyzer.vala	(original)
+++ trunk/vala/valasemanticanalyzer.vala	Sun Jan 11 00:55:08 2009
@@ -163,11 +163,11 @@
 		} 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 ();
 				}
 			}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]