…es). Flags and enums with a GType have a value_nick and value_name strings available in the class struct. But for flags and enums without GType, we need to get this information from introspection. g_base_info_get_name() gives the string for value_nick. In the GIR, the attribute "c:identifier" is the string neede for value_name. This patch adds the "c:identifier" from GIR to the typelib for all flags and enum values. It can be retireved using g_base_info_get_attribute(info, "c:identifier"). https://bugzilla.gnome.org/show_bug.cgi?id=642757
This allows bindings to test the ability to clean up (in) parameters after a GError is set by the wrapped function.
…value. Glib uses flag aliases, multiple flag names with the same int value. For example G_IO_FLAG_MASK and G_IO_FLAG_GET_MASK. We need these flag values to test that gi bindings don't assume that all flags have the same value.
Different types of array have different type nodes, so they should produce different keys in the cache of already seen type nodes, to avoid turning a GByteArray into a reference to a GPtrArray. https://bugzilla.gnome.org/show_bug.cgi?id=642300
The argument was called 'ctx' but the macro was using 'context'. This wasn't causing the build to fail because the variable 'context' was already defined in all the scopes where this macro was used.
Hit this race in practice with two g-ir-scanner invocations in Fedora's koji.
…n handling in bindings. https://bugzilla.gnome.org/show_bug.cgi?id=639834
…-gtype enums. There was a bug in pygi in which non-gtype enums shared values between themselves. That is, if there was an attribute Enum.THE_VALUE, it would be available on as OtherEnum.THE_VALUE as well. To make a test case for this bug, we need a second non-gtype enum in GIMarshallingTests to compare with.
Scanner tries to detect caller-allocates attribute automatically if not explicitly specified by checking that parameter is not double-referenced and is struct or union. This patch adds resolving of aliases when checking whether parameter is struct or union. Also removes old incorrect method transformer.follow_aliases, which was never used in current code. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=639081