diff options
author | Jürg Billeter <j@bitron.ch> | 2010-03-21 16:14:58 +0100 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2010-03-21 16:19:35 +0100 |
commit | 7082c10201cd471e85f80a07ab161ea20442f33d (patch) | |
tree | 15df14b0915d6b313068673c2536b4f6de68615a /codegen/valaccodememberaccessmodule.vala | |
parent | 2a02ef9dbaaf496990d3e1f8747e91642ad6d5ee (diff) | |
download | vala-7082c10201cd471e85f80a07ab161ea20442f33d.tar.gz |
Fix closures in property accessors
Fixes bug 613483.
Diffstat (limited to 'codegen/valaccodememberaccessmodule.vala')
-rw-r--r-- | codegen/valaccodememberaccessmodule.vala | 5 |
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 |