They were parsed in wrong order resulting in having wrong pointer
being const. For example - g_settings_list_schemas return type is
normally 'const gchar *const *', but parsing result was
'const gchar ** const'.
This was unnoticed, because pointer constness information is rather
not used by gobject-introspection now.
https://bugzilla.gnome.org/show_bug.cgi?id=656445
}
| '*' type_qualifier_list pointer
{
- $$ = gi_source_pointer_new ($3);
- $$->type_qualifier = $2;
+ GISourceType **base = &($3->base_type);
+
+ while (*base != NULL) {
+ base = &((*base)->base_type);
+ }
+ *base = gi_source_pointer_new (NULL);
+ (*base)->type_qualifier = $2;
+ $$ = $3;
}
| '*' pointer
{
- $$ = gi_source_pointer_new ($2);
+ GISourceType **base = &($2->base_type);
+
+ while (*base != NULL) {
+ base = &((*base)->base_type);
+ }
+ *base = gi_source_pointer_new (NULL);
+ $$ = $2;
}
;