Add a new interface GIMarshallingTestsInterface3 with a method that takes an array of variants as argument. This can be used for testing the passing of array of variants from C to introspection clients, which is not otherwise covered in the tests for arrays of variants. https://bugzilla.gnome.org/show_bug.cgi?id=667244 Signed-off-by: Martin Pitt <firstname.lastname@example.org>
This used the non-existing G_TYPE_INSTANCE_GET_INTERFACE2 macro, likely a copy&paste error.
… anonymous unions The previous patch introduced a regression where we would crash on encountering an anonymous union. Work around this by just writing out 'gpointer' in this case, and add a regression test.
…ute. That is - write also type qualifiers (const and volatile here). Update existing tests and add a new struct to regress.h having members with type qualifiers. https://bugzilla.gnome.org/show_bug.cgi?id=656445
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
Previous fix was wrong, as it called to_underscores_noprefix on a prefixed type name. The actual fix is to call the transformer to do the prefix / type_name split, and turn the latter to underscores. Test case included. https://bugzilla.gnome.org/show_bug.cgi?id=634202
This is a general code cleanup.
Turns out that the problem was not only in the wrong matching to GType enums, but also that the non-GType heuristics used to_underscores instead of to_underscores_noprefix, turning DBusError into D_Bus_Error instead of DBus_Error. Complete with various tests. https://bugzilla.gnome.org/show_bug.cgi?id=669350
_uscore_type_names maps from the c_symbol_prefix, which has the global ns prefix removed, so we need to split the function symbol before the lookup. Previously it worked because it used the heuristics for unregistered enums (and failed for GDBusError, which has two uppercase letters in succession) https://bugzilla.gnome.org/show_bug.cgi?id=669350
Also make the _copy()/_free() methods for GIMarshallingTestsBoxedStruct get along with NULL values. https://bugzilla.gnome.org/show_bug.cgi?id=676603
This reproduces https://bugzilla.gnome.org/show_bug.cgi?id=653151
This came up as a side issue in https://bugzilla.gnome.org/show_bug.cgi?id=653151
If the scanner found a function with _new in its name, but not prefixed by the name of a known type, it would assume that the function was a constructor, and then complain that it couldn't figure out what it was a constructor for, and mark it introspectable=0. Instead, just assume that the function is not actually a constructor in that case (unless it's explicitly tagged as such). https://bugzilla.gnome.org/show_bug.cgi?id=676815