summaryrefslogtreecommitdiff
path: root/girepository/girparser.c
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2021-02-09 11:38:27 +0000
committerEmmanuele Bassi <ebassi@gmail.com>2021-08-05 16:24:23 +0000
commit661ca094e8d2279709258169a9e67ff7dc10f3a7 (patch)
treea1d4596787ec3c7bf51372748a76c634c51b2b3e /girepository/girparser.c
parentffb165a58d360d1453f6ced227ae645951bfb8b6 (diff)
downloadgobject-introspection-661ca094e8d2279709258169a9e67ff7dc10f3a7.tar.gz
Add "final" class attribute
A "final" class is a leaf node in a derivable type hierarchy, and cannot be derived any further. This matches the changes in libgobject that introduced G_TYPE_FLAG_FINAL to the type flags.
Diffstat (limited to 'girepository/girparser.c')
-rw-r--r--girepository/girparser.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/girepository/girparser.c b/girepository/girparser.c
index f62b1de6..b6983d1a 100644
--- a/girepository/girparser.c
+++ b/girepository/girparser.c
@@ -1806,6 +1806,7 @@ start_class (GMarkupParseContext *context,
const gchar *deprecated;
const gchar *abstract;
const gchar *fundamental;
+ const gchar *final;
const gchar *ref_func;
const gchar *unref_func;
const gchar *set_value_func;
@@ -1826,6 +1827,7 @@ start_class (GMarkupParseContext *context,
typeinit = find_attribute ("glib:get-type", attribute_names, attribute_values);
deprecated = find_attribute ("deprecated", attribute_names, attribute_values);
abstract = find_attribute ("abstract", attribute_names, attribute_values);
+ final = find_attribute ("final", attribute_names, attribute_values);
fundamental = find_attribute ("glib:fundamental", attribute_names, attribute_values);
ref_func = find_attribute ("glib:ref-func", attribute_names, attribute_values);
unref_func = find_attribute ("glib:unref-func", attribute_names, attribute_values);
@@ -1861,6 +1863,7 @@ start_class (GMarkupParseContext *context,
iface->deprecated = FALSE;
iface->abstract = abstract && strcmp (abstract, "1") == 0;
+ iface->final_ = final && strcmp (final, "1") == 0;
if (fundamental)
iface->fundamental = TRUE;