diff options
Diffstat (limited to 'girepository/girparser.c')
-rw-r--r-- | girepository/girparser.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/girepository/girparser.c b/girepository/girparser.c index 678edcc3..7796bea2 100644 --- a/girepository/girparser.c +++ b/girepository/girparser.c @@ -1640,6 +1640,11 @@ start_class (GMarkupParseContext *context, const gchar *typeinit; const gchar *deprecated; const gchar *abstract; + const gchar *fundamental; + const gchar *ref_func; + const gchar *unref_func; + const gchar *set_value_func; + const gchar *get_value_func; GIrNodeInterface *iface; if (!(strcmp (element_name, "class") == 0 && @@ -1656,6 +1661,11 @@ 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); + 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); + set_value_func = find_attribute ("glib:set-value-func", attribute_names, attribute_values); + get_value_func = find_attribute ("glib:get-value-func", attribute_names, attribute_values); if (name == NULL) { @@ -1686,6 +1696,15 @@ start_class (GMarkupParseContext *context, iface->abstract = abstract && strcmp (abstract, "1") == 0; + if (ref_func) + iface->ref_func = g_strdup (ref_func); + if (unref_func) + iface->unref_func = g_strdup (unref_func); + if (set_value_func) + iface->set_value_func = g_strdup (set_value_func); + if (get_value_func) + iface->get_value_func = g_strdup (get_value_func); + push_node (ctx, (GIrNode *) iface); ctx->current_module->entries = g_list_append (ctx->current_module->entries, iface); |