[vala] NULL-terminate array copies
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [vala] NULL-terminate array copies
- Date: Sun, 13 Dec 2009 16:32:59 +0000 (UTC)
commit 1ca4c853606a2b2c922903c4fc3c1d09a3cac1af
Author: Jürg Billeter <j bitron ch>
Date: Sun Dec 13 17:31:29 2009 +0100
NULL-terminate array copies
codegen/valaccodearraymodule.vala | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
---
diff --git a/codegen/valaccodearraymodule.vala b/codegen/valaccodearraymodule.vala
index 0d745b0..e1ef010 100644
--- a/codegen/valaccodearraymodule.vala
+++ b/codegen/valaccodearraymodule.vala
@@ -735,7 +735,14 @@ internal class Vala.CCodeArrayModule : CCodeMethodCallModule {
cdecl.add_declarator (cvardecl);
var gnew = new CCodeFunctionCall (new CCodeIdentifier ("g_new0"));
gnew.add_argument (new CCodeIdentifier (array_type.element_type.get_cname ()));
- gnew.add_argument (new CCodeIdentifier ("length"));
+
+ CCodeExpression length_expr = new CCodeIdentifier ("length");
+ // add extra item to have array NULL-terminated for all reference types
+ if (array_type.element_type.data_type != null && array_type.element_type.data_type.is_reference_type ()) {
+ length_expr = new CCodeBinaryExpression (CCodeBinaryOperator.PLUS, length_expr, new CCodeConstant ("1"));
+ }
+ gnew.add_argument (length_expr);
+
cvardecl.initializer = gnew;
block.add_statement (cdecl);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]