vala r1980 - in trunk: . vala



Author: juergbi
Date: Tue Nov  4 20:40:29 2008
New Revision: 1980
URL: http://svn.gnome.org/viewvc/vala?rev=1980&view=rev

Log:
2008-11-04  JÃrg Billeter  <j bitron ch>

	* vala/valadynamicproperty.vala:
	* vala/valaproperty.vala:
	* vala/valasemanticanalyzer.vala:

	Fix crash when using dynamic properties, fixes bug 559304


Modified:
   trunk/ChangeLog
   trunk/vala/valadynamicproperty.vala
   trunk/vala/valaproperty.vala
   trunk/vala/valasemanticanalyzer.vala

Modified: trunk/vala/valadynamicproperty.vala
==============================================================================
--- trunk/vala/valadynamicproperty.vala	(original)
+++ trunk/vala/valadynamicproperty.vala	Tue Nov  4 20:40:29 2008
@@ -40,4 +40,7 @@
 		return new ArrayList<string> ();
 	}
 
+	public override bool check (SemanticAnalyzer analyzer) {
+		return true;
+	}
 }

Modified: trunk/vala/valaproperty.vala
==============================================================================
--- trunk/vala/valaproperty.vala	(original)
+++ trunk/vala/valaproperty.vala	Tue Nov  4 20:40:29 2008
@@ -34,7 +34,9 @@
 		get { return _data_type; }
 		set {
 			_data_type = value;
-			_data_type.parent_node = this;
+			if (value != null) {
+				_data_type.parent_node = this;
+			}
 		}
 	}
 	

Modified: trunk/vala/valasemanticanalyzer.vala
==============================================================================
--- trunk/vala/valasemanticanalyzer.vala	(original)
+++ trunk/vala/valasemanticanalyzer.vala	Tue Nov  4 20:40:29 2008
@@ -1683,7 +1683,7 @@
 						// dynamic property assignment
 						var prop = new DynamicProperty (expr.inner.value_type, expr.member_name, expr.source_reference);
 						prop.access = SymbolAccessibility.PUBLIC;
-						prop.set_accessor = new PropertyAccessor (false, true, false, null, null);
+						prop.set_accessor = new PropertyAccessor (false, true, false, null, prop.source_reference);
 						prop.set_accessor.access = SymbolAccessibility.PUBLIC;
 						prop.owner = expr.inner.value_type.data_type.scope;
 						dynamic_object_type.type_symbol.scope.add (null, prop);
@@ -1700,7 +1700,7 @@
 						prop.property_type = expr.inner.value_type.copy ();
 					}
 					prop.access = SymbolAccessibility.PUBLIC;
-					prop.get_accessor = new PropertyAccessor (true, false, false, null, null);
+					prop.get_accessor = new PropertyAccessor (true, false, false, null, prop.source_reference);
 					prop.get_accessor.access = SymbolAccessibility.PUBLIC;
 					prop.owner = expr.inner.value_type.data_type.scope;
 					dynamic_object_type.type_symbol.scope.add (null, prop);



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