vala r1721 - in trunk: . gobject
- From: juergbi svn gnome org
- To: svn-commits-list gnome org
- Subject: vala r1721 - in trunk: . gobject
- Date: Tue, 22 Jul 2008 14:51:00 +0000 (UTC)
Author: juergbi
Date: Tue Jul 22 14:50:59 2008
New Revision: 1721
URL: http://svn.gnome.org/viewvc/vala?rev=1721&view=rev
Log:
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
Modified:
trunk/ChangeLog
trunk/THANKS
trunk/gobject/valaccodearraycreationexpressionbinding.vala
Modified: trunk/THANKS
==============================================================================
--- trunk/THANKS (original)
+++ trunk/THANKS Tue Jul 22 14:50:59 2008
@@ -3,6 +3,7 @@
Alberto Ruiz
Alexandre Moreira
Ali Sabil
+Amos Brocco
Andrea Del Signore
Andreas Brauchli
Arwed von Merkatz
Modified: trunk/gobject/valaccodearraycreationexpressionbinding.vala
==============================================================================
--- trunk/gobject/valaccodearraycreationexpressionbinding.vala (original)
+++ trunk/gobject/valaccodearraycreationexpressionbinding.vala Tue Jul 22 14:50:59 2008
@@ -44,6 +44,8 @@
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;
@@ -57,11 +59,6 @@
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;
@@ -69,6 +66,12 @@
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) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]