summaryrefslogtreecommitdiff
path: root/codegen/valaccodememberaccessmodule.vala
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2010-03-21 16:14:58 +0100
committerJürg Billeter <j@bitron.ch>2010-03-21 16:19:35 +0100
commit7082c10201cd471e85f80a07ab161ea20442f33d (patch)
tree15df14b0915d6b313068673c2536b4f6de68615a /codegen/valaccodememberaccessmodule.vala
parent2a02ef9dbaaf496990d3e1f8747e91642ad6d5ee (diff)
downloadvala-7082c10201cd471e85f80a07ab161ea20442f33d.tar.gz
Fix closures in property accessors
Fixes bug 613483.
Diffstat (limited to 'codegen/valaccodememberaccessmodule.vala')
-rw-r--r--codegen/valaccodememberaccessmodule.vala5
1 files changed, 4 insertions, 1 deletions
diff --git a/codegen/valaccodememberaccessmodule.vala b/codegen/valaccodememberaccessmodule.vala
index 3ebb4bf5d..edfa1333b 100644
--- a/codegen/valaccodememberaccessmodule.vala
+++ b/codegen/valaccodememberaccessmodule.vala
@@ -380,7 +380,10 @@ internal class Vala.CCodeMemberAccessModule : CCodeControlFlowModule {
} else {
if (p.captured) {
// captured variables are stored on the heap
- var block = ((Method) p.parent_symbol).body;
+ var block = p.parent_symbol as Block;
+ if (block == null) {
+ block = ((Method) p.parent_symbol).body;
+ }
expr.ccodenode = new CCodeMemberAccess.pointer (get_variable_cexpression ("_data%d_".printf (get_block_id (block))), get_variable_cname (p.name));
} else if (current_method != null && current_method.coroutine) {
// use closure