summaryrefslogtreecommitdiff
path: root/vala/valapostfixexpression.vala
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2009-09-14 17:37:45 +0200
committerJürg Billeter <j@bitron.ch>2009-09-14 17:37:45 +0200
commit24be8d8e51f3302db40460f667b15d8412842de0 (patch)
treed15967c08f83c1bbd0cefd0b99150b6375ee289a /vala/valapostfixexpression.vala
parentabdeffd85a17e691d2867d37f51b881702a155b0 (diff)
downloadvala-24be8d8e51f3302db40460f667b15d8412842de0.tar.gz
Fix crash when using postfix expressions with read-only properties
Fixes bug 595145.
Diffstat (limited to 'vala/valapostfixexpression.vala')
-rw-r--r--vala/valapostfixexpression.vala16
1 files changed, 15 insertions, 1 deletions
diff --git a/vala/valapostfixexpression.vala b/vala/valapostfixexpression.vala
index 3157c6711..1ed72e163 100644
--- a/vala/valapostfixexpression.vala
+++ b/vala/valapostfixexpression.vala
@@ -1,6 +1,6 @@
/* valapostfixexpression.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
@@ -100,6 +100,20 @@ public class Vala.PostfixExpression : Expression {
return false;
}
+ if (inner is MemberAccess) {
+ var ma = (MemberAccess) inner;
+
+ if (ma.symbol_reference is Property) {
+ var prop = (Property) ma.symbol_reference;
+
+ if (prop.set_accessor == null || !prop.set_accessor.writable) {
+ ma.error = true;
+ Report.error (ma.source_reference, "Property `%s' is read-only".printf (prop.get_full_name ()));
+ return false;
+ }
+ }
+ }
+
value_type = inner.value_type;
return !error;