Don't pass default GLib marshallers for signals
By passing NULL to g_signal_new
instead of a marshaller, GLib will
actually internally optimize the signal (if the marshaller is available
in GLib itself) by also setting the valist marshaller. This makes the
signal emission a bit more performant than the regular marshalling,
which still needs to box into GValue
and call libffi in case of a
generic marshaller.
Note that for custom marshallers, one would use
g_signal_set_va_marshaller()
with the valist marshaller instead.