diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2022-01-26 19:34:06 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2022-01-26 20:02:48 +0100 |
commit | c59ee0984d25a00c3ad0f80dbad97e11053ed92a (patch) | |
tree | f1ce2e6244485222f46bd021119d56f681eaccfd /ccode | |
parent | f853104ebf94ce1f72ab408dc5d5b50c81b69d51 (diff) | |
download | vala-c59ee0984d25a00c3ad0f80dbad97e11053ed92a.tar.gz |
codegen: Write array length of formal parameters with fixed length
"void foo (gint i[3]) { ... }" instead of "void foo (gint* i) { ... }"
Diffstat (limited to 'ccode')
-rw-r--r-- | ccode/valaccodeparameter.vala | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/ccode/valaccodeparameter.vala b/ccode/valaccodeparameter.vala index b4bc74963..8e90695a7 100644 --- a/ccode/valaccodeparameter.vala +++ b/ccode/valaccodeparameter.vala @@ -42,6 +42,8 @@ public class Vala.CCodeParameter : CCodeNode { */ public bool ellipsis { get; set; } + CCodeDeclarator? declarator; + public CCodeParameter (string n, string type) { name = n; type_name = type; @@ -51,11 +53,21 @@ public class Vala.CCodeParameter : CCodeNode { ellipsis = true; } + public CCodeParameter.with_declarator (string type, CCodeDeclarator decl) { + name = decl.name; + type_name = type; + declarator = decl; + } + public override void write (CCodeWriter writer) { if (!ellipsis) { writer.write_string (type_name); writer.write_string (" "); - writer.write_string (name); + if (declarator != null) { + declarator.write (writer); + } else { + writer.write_string (name); + } } else { writer.write_string ("..."); } |