The prototypes for e.g. g_initable_new() is purposely the same as
g_object_new(). However, if we change it from:
gpointer g_initable_new (GType object_type,
GCancellable *cancellable,
GError **error,
const gchar *first_property_name,
...);
to:
gpointer g_initable_new (GType object_type,
GCancellable *cancellable,
GError **error,
...);
we could add a G_GNUC_NULL_TERMINATED marker so that missing NULLs would
cause a warning. This isn't possible with the g_object_new() prototype,
because then g_object_type (G_TYPE_FOO, NULL) would cause a warning.
However, this would mean the prototypes would differ from the more
commonly used g_object_new(). Does this matter?