summaryrefslogtreecommitdiff
path: root/vala/valamemberinitializer.vala
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2009-09-05 14:09:06 +0200
committerJürg Billeter <j@bitron.ch>2009-09-05 14:09:06 +0200
commitaccc2080755543a4b183549b47d268e3f329d85e (patch)
tree0a3de115caeb1c73a4beaaf77833c6159ac2ef80 /vala/valamemberinitializer.vala
parent3fe8c8aa53c5c0bb074b7f45db873ded5afccd8e (diff)
downloadvala-accc2080755543a4b183549b47d268e3f329d85e.tar.gz
Fix crash when creating structs in member initializer
Diffstat (limited to 'vala/valamemberinitializer.vala')
-rw-r--r--vala/valamemberinitializer.vala18
1 files changed, 16 insertions, 2 deletions
diff --git a/vala/valamemberinitializer.vala b/vala/valamemberinitializer.vala
index 3ca96b629..2057e3181 100644
--- a/vala/valamemberinitializer.vala
+++ b/vala/valamemberinitializer.vala
@@ -1,6 +1,6 @@
/* valamemberinitializer.vala
*
- * Copyright (C) 2007 Jürg Billeter
+ * Copyright (C) 2007-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
@@ -35,13 +35,21 @@ public class Vala.MemberInitializer : CodeNode {
/**
* Initializer expression.
*/
- public Expression initializer { get; set; }
+ public Expression initializer {
+ get { return _initializer; }
+ set {
+ _initializer = value;
+ _initializer.parent_node = this;
+ }
+ }
/**
* The symbol this expression refers to.
*/
public weak Symbol symbol_reference { get; set; }
+ Expression _initializer;
+
/**
* Creates a new member initializer.
*
@@ -63,5 +71,11 @@ public class Vala.MemberInitializer : CodeNode {
public override bool check (SemanticAnalyzer analyzer) {
return initializer.check (analyzer);
}
+
+ public override void replace_expression (Expression old_node, Expression new_node) {
+ if (initializer == old_node) {
+ initializer = new_node;
+ }
+ }
}