From: Marco Trevisan (TreviƱo) Date: Wed, 12 Jan 2011 17:41:43 +0000 (+0100) Subject: codegen: Use pointers when accessing constant multi-dimensional arrays X-Git-Tag: 0.39.92~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9093a1d714a87504fa264dd5f72aaf5f8a29d5a4;p=thirdparty%2Fvala.git codegen: Use pointers when accessing constant multi-dimensional arrays https://bugzilla.gnome.org/show_bug.cgi?id=604371 --- diff --git a/codegen/valaccodearraymodule.vala b/codegen/valaccodearraymodule.vala index 6cab68a42..13be80c3a 100644 --- a/codegen/valaccodearraymodule.vala +++ b/codegen/valaccodearraymodule.vala @@ -164,6 +164,9 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule { for (int i = 1; i < rank; i++) { var cmul = new CCodeBinaryExpression (CCodeBinaryOperator.MUL, cindex, get_array_length_cexpression (expr.container, i + 1)); cindex = new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, cmul, get_cvalue (indices[i])); + if (expr.container.is_constant ()) { + ccontainer = new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, ccontainer); + } } set_cvalue (expr, new CCodeElementAccess (ccontainer, cindex)); }