glib-genmarshal generates wrong code for va marshaler for VARIANT type
Comparing the gmarshal.c code for VOID:VARIANT with what glib-genmarshal
creates for it shows this diff:
if ((param_types[0] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && arg0 != NULL)
- arg0 = g_variant_ref_sink (arg0);
+ arg0 = g_variant_ref (arg0);
Only one of these can be correct, and the glib-genmarshal one looks wrong to me (it would leave a floating variant un-sunk), and the pre-python glib-genmarshal also used ref_sink().