[vala/staging] codegen: Use pointers when accessing constant multi-dimensional arrays



commit 9093a1d714a87504fa264dd5f72aaf5f8a29d5a4
Author: Marco Trevisan (TreviƱo) <mail 3v1n0 net>
Date:   Wed Jan 12 18:41:43 2011 +0100

    codegen: Use pointers when accessing constant multi-dimensional arrays
    
    https://bugzilla.gnome.org/show_bug.cgi?id=604371

 codegen/valaccodearraymodule.vala |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
---
diff --git a/codegen/valaccodearraymodule.vala b/codegen/valaccodearraymodule.vala
index 6cab68a..13be80c 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));
                }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]