]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Fix crash when using dynamic properties, fixes bug 559304
authorJürg Billeter <j@bitron.ch>
Tue, 4 Nov 2008 20:40:29 +0000 (20:40 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Tue, 4 Nov 2008 20:40:29 +0000 (20:40 +0000)
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

svn path=/trunk/; revision=1980

ChangeLog
vala/valadynamicproperty.vala
vala/valaproperty.vala
vala/valasemanticanalyzer.vala

index 2b5f5644f4f620041d54c87cc08e02208ed41d31..2240b90aacc5f7b42255a80150880e33e8584e3a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+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
+
 2008-11-04  Jürg Billeter  <j@bitron.ch>
 
        * gobject/valaccodememberaccessmodule.vala:
index e18ebbe3c7ff65a4a3f832a572730686e8729657..cc092c26b2559b65a479bdb9cc7703fed74f9134 100644 (file)
@@ -40,4 +40,7 @@ public class Vala.DynamicProperty : Property {
                return new ArrayList<string> ();
        }
 
+       public override bool check (SemanticAnalyzer analyzer) {
+               return true;
+       }
 }
index 05c0c95d79913c59fdd47dcb1fbfc9fe105d9cba..39247b0e4595030d6e34d66c5489800d8c425b5b 100644 (file)
@@ -34,7 +34,9 @@ public class Vala.Property : Member, Lockable {
                get { return _data_type; }
                set {
                        _data_type = value;
-                       _data_type.parent_node = this;
+                       if (value != null) {
+                               _data_type.parent_node = this;
+                       }
                }
        }
        
index d81f9d223831f86ce4c8356ad229bb3bf8d21f89..f803028b240621495a311c38ec070d0ea98bd6e7 100644 (file)
@@ -1683,7 +1683,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
                                                // 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 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
                                                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);