diff options
author | Jürg Billeter <j@bitron.ch> | 2009-04-10 17:02:22 +0200 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2009-04-10 17:04:48 +0200 |
commit | e065e581748863cb7c90fabb2bb39d6671dfbe8f (patch) | |
tree | b4756291abe741fc60f5fe8a5507db10ce256242 /ccode | |
parent | 157662d51ac2615b520d642664f1627b44233adc (diff) | |
download | vala-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.vala | 14 |
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) { |