summaryrefslogtreecommitdiff
path: root/ccode
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2009-04-10 17:02:22 +0200
committerJürg Billeter <j@bitron.ch>2009-04-10 17:04:48 +0200
commite065e581748863cb7c90fabb2bb39d6671dfbe8f (patch)
treeb4756291abe741fc60f5fe8a5507db10ce256242 /ccode
parent157662d51ac2615b520d642664f1627b44233adc (diff)
downloadvala-e065e581748863cb7c90fabb2bb39d6671dfbe8f.tar.gz
Arrays: Add experimental support for fixed-length arrays
Local fixed-length arrays are allocated on the stack. int[3] array = { 1, 2, 3 }; Fixes bug 492481.
Diffstat (limited to 'ccode')
-rw-r--r--ccode/valaccodevariabledeclarator.vala14
1 files changed, 13 insertions, 1 deletions
diff --git a/ccode/valaccodevariabledeclarator.vala b/ccode/valaccodevariabledeclarator.vala
index c28704d20..fdb9dfab8 100644
--- a/ccode/valaccodevariabledeclarator.vala
+++ b/ccode/valaccodevariabledeclarator.vala
@@ -36,13 +36,22 @@ public class Vala.CCodeVariableDeclarator : CCodeDeclarator {
*/
public CCodeExpression? initializer { get; set; }
- public CCodeVariableDeclarator (string name, CCodeExpression? initializer = null) {
+ /**
+ * The optional declarator suffix.
+ */
+ public string? declarator_suffix { get; set; }
+
+ public CCodeVariableDeclarator (string name, CCodeExpression? initializer = null, string? declarator_suffix = null) {
this.name = name;
this.initializer = initializer;
+ this.declarator_suffix = declarator_suffix;
}
public override void write (CCodeWriter writer) {
writer.write_string (name);
+ if (declarator_suffix != null) {
+ writer.write_string (declarator_suffix);
+ }
if (initializer != null) {
writer.write_string (" = ");
@@ -52,6 +61,9 @@ public class Vala.CCodeVariableDeclarator : CCodeDeclarator {
public override void write_declaration (CCodeWriter writer) {
writer.write_string (name);
+ if (declarator_suffix != null) {
+ writer.write_string (declarator_suffix);
+ }
// initializer lists can't be moved to a separate statement
if (initializer is CCodeInitializerList) {