From: Juerg Billeter Date: Thu, 30 Aug 2007 21:39:22 +0000 (+0000) Subject: don't NULL-terminate value-type arrays X-Git-Tag: VALA_0_1_3~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=857712e143670d64768dd6d596cf865b98447373;p=platform%2Fupstream%2Fvala.git don't NULL-terminate value-type arrays 2007-08-30 Juerg Billeter * gobject/valacodegenerator.vala: don't NULL-terminate value-type arrays svn path=/trunk/; revision=548 --- diff --git a/ChangeLog b/ChangeLog index f8f1b11..655f0d4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2007-08-30 Jürg Billeter + * gobject/valacodegenerator.vala: don't NULL-terminate value-type arrays + +2007-08-30 Jürg Billeter + * vala/valamemberaccess.vala, vala/valasemanticanalyzer.vala: support prototype access to allow accessing instance members without an actual instance, fixes bug 471778 diff --git a/gobject/valacodegenerator.vala b/gobject/valacodegenerator.vala index 7949698..cc03c69 100644 --- a/gobject/valacodegenerator.vala +++ b/gobject/valacodegenerator.vala @@ -1945,7 +1945,13 @@ public class Vala.CodeGenerator : CodeVisitor { bool first = true; CCodeExpression cexpr = null; foreach (Expression size in expr.get_sizes ()) { - var csize = new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, (CCodeExpression) size.ccodenode, new CCodeConstant ("1")); + CCodeExpression 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, (CCodeExpression) size.ccodenode, new CCodeConstant ("1")); + } else { + csize = (CCodeExpression) size.ccodenode; + } if (first) { cexpr = csize;