]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Fix assignment to captured array variables
authorJürg Billeter <j@bitron.ch>
Sat, 9 Jan 2010 15:53:02 +0000 (16:53 +0100)
committerJürg Billeter <j@bitron.ch>
Sat, 9 Jan 2010 15:53:02 +0000 (16:53 +0100)
codegen/valaccodeassignmentmodule.vala

index 80be69cf83c151a04c9af83d2db81a1b21596f8b..c4bb12c7fa1ec89075182f691016f3ab6fa78b02 100644 (file)
@@ -156,8 +156,9 @@ internal class Vala.CCodeAssignmentModule : CCodeMemberAccessModule {
                                }
                                if (array_type.rank == 1) {
                                        var array_var = assignment.left.symbol_reference;
+                                       var array_local = array_var as LocalVariable;
                                        if (array_var != null && array_var.is_internal_symbol ()
-                                           && (array_var is LocalVariable || array_var is Field)) {
+                                           && ((array_var is LocalVariable && !array_local.captured) || array_var is Field)) {
                                                var lhs_array_size = head.get_array_size_cexpression (assignment.left);
                                                var rhs_array_len = head.get_array_length_cexpression (assignment.left, 1);
                                                ccomma.append_expression (new CCodeAssignment (lhs_array_size, rhs_array_len));