2008-07-22 Jürg Billeter <j@bitron.ch>
+ * gobject/valaccodearraycreationexpressionbinding.vala:
+
+ Fix crash when using multi-dimensional arrays,
+ patch by Amos Brocco, fixes bug 544145
+
+2008-07-22 Jürg Billeter <j@bitron.ch>
+
* vala/valaparser.vala:
Fix regression introduced by last commit
gnew.add_argument (new CCodeIdentifier (expr.element_type.get_cname ()));
bool first = true;
CCodeExpression cexpr = null;
+
+ // iterate over each dimension
foreach (Expression size in expr.get_sizes ()) {
CCodeExpression csize = (CCodeExpression) size.ccodenode;
csize = new CCodeParenthesizedExpression (new CCodeAssignment (name_cnode, csize));
}
- if (expr.element_type.data_type != null && expr.element_type.data_type.is_reference_type ()) {
- // add extra item to have array NULL-terminated for all reference types
- csize = new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, csize, new CCodeConstant ("1"));
- }
-
if (first) {
cexpr = csize;
first = false;
cexpr = new CCodeBinaryExpression (CCodeBinaryOperator.MUL, cexpr, csize);
}
}
+
+ // add extra item to have array NULL-terminated for all reference types
+ if (expr.element_type.data_type != null && expr.element_type.data_type.is_reference_type ()) {
+ cexpr = new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, cexpr, new CCodeConstant ("1"));
+ }
+
gnew.add_argument (cexpr);
if (expr.initializer_list != null) {