From 725d48f3ae05c3c42519de50e526e457f089cfd9 Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Thu, 21 Jun 2018 13:21:51 +0200 Subject: [PATCH] girparser: Allow changing the type of constants using metadata See https://gitlab.gnome.org/GNOME/vala/issues/643 --- vala/valagirparser.vala | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala index 95ad5c9d2..31ae069c2 100644 --- a/vala/valagirparser.vala +++ b/vala/valagirparser.vala @@ -3502,12 +3502,22 @@ public class Vala.GirParser : CodeVisitor { var comment = parse_symbol_doc (); - var type = parse_type (); + bool no_array_length; + bool array_null_terminated; + int array_length_idx; + var type = parse_type (null, out array_length_idx, true, out no_array_length, out array_null_terminated); + type = element_get_type (type, true, ref no_array_length, ref array_null_terminated); var c = new Constant (current.name, type, null, current.source_reference); current.symbol = c; c.access = SymbolAccessibility.PUBLIC; c.comment = comment; c.external = true; + if (no_array_length || array_null_terminated) { + c.set_attribute_bool ("CCode", "array_length", !no_array_length); + } + if (array_null_terminated) { + c.set_attribute_bool ("CCode", "array_null_terminated", true); + } pop_node (); end_element ("constant"); -- 2.47.2