From: Jürg Billeter Date: Sat, 16 Oct 2010 07:51:06 +0000 (+0200) Subject: codegen: Support resize and concatenation on the same array X-Git-Tag: 0.11.1~102 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d31d40d07c94422f76df275e6cdb28867959e4bd;p=thirdparty%2Fvala.git codegen: Support resize and concatenation on the same array Fixes bug 631540. --- diff --git a/codegen/valaccodemethodcallmodule.vala b/codegen/valaccodemethodcallmodule.vala index bfb707fbb..cceec7018 100644 --- a/codegen/valaccodemethodcallmodule.vala +++ b/codegen/valaccodemethodcallmodule.vala @@ -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;