]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Support resize and concatenation on the same array
authorJürg Billeter <j@bitron.ch>
Sat, 16 Oct 2010 07:51:06 +0000 (09:51 +0200)
committerJürg Billeter <j@bitron.ch>
Sat, 16 Oct 2010 07:51:06 +0000 (09:51 +0200)
Fixes bug 631540.

codegen/valaccodemethodcallmodule.vala

index bfb707fbb5707ee7a6921285c8ebb4fb5036bbad..cceec701848e22ccf2d2712d0f00bd622570bf1e 100644 (file)
@@ -717,6 +717,13 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule {
                        ccomma.append_expression (new CCodeConditionalExpression (ccheck, czero, new CCodeConstant ("NULL")));
                        ccomma.append_expression (new CCodeAssignment (get_array_length_cexpression (ma.inner, 1), temp_ref));
 
+                       var array_var = ma.inner.symbol_reference;
+                       var array_local = array_var as LocalVariable;
+                       if (array_var != null && array_var.is_internal_symbol ()
+                           && ((array_var is LocalVariable && !array_local.captured) || array_var is Field)) {
+                               ccomma.append_expression (new CCodeAssignment (get_array_size_cexpression (ma.inner), temp_ref));
+                       }
+
                        set_cvalue (expr, ccomma);
 
                        return;