From: Rico Tzschichholz Date: Tue, 17 Mar 2020 14:26:36 +0000 (+0100) Subject: codegen: Use correctly typed array-length variable for property-getter X-Git-Tag: 0.48.2~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d33e9fbca63674b7dfa339c25a9d5e27cce187f3;p=thirdparty%2Fvala.git codegen: Use correctly typed array-length variable for property-getter --- diff --git a/codegen/valaccodememberaccessmodule.vala b/codegen/valaccodememberaccessmodule.vala index 97e0c48fd..50bd4f121 100644 --- a/codegen/valaccodememberaccessmodule.vala +++ b/codegen/valaccodememberaccessmodule.vala @@ -289,7 +289,12 @@ public abstract class Vala.CCodeMemberAccessModule : CCodeControlFlowModule { ccode.add_assignment (temp_value.array_length_cvalues[0], len_call); } else if (get_ccode_array_length (prop)) { for (int dim = 1; dim <= array_type.rank; dim++) { - ccall.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, get_array_length_cvalue (temp_value, dim))); + var length_ctype = get_ccode_array_length_type (prop) ?? get_ccode_array_length_type (array_type); + var temp_var = get_temp_variable (new CType (length_ctype, "0"), true, null, true); + var temp_ref = get_variable_cexpression (temp_var.name); + emit_temp_var (temp_var); + ccall.add_argument (new CCodeUnaryExpression (CCodeUnaryOperator.ADDRESS_OF, temp_ref)); + ccode.add_assignment (temp_value.array_length_cvalues[dim - 1], temp_ref); } } } else {