gobject: Use new G_VALUE_COLLECT_INIT variant

Makes g_object_new_valist 20% to 30% faster (against 2321e5a).

Profiled against the pan newsreader which uses a variant of simple
and complex object creation.

https://bugzilla.gnome.org/show_bug.cgi?id=603590
This commit is contained in:
Edward Hervey 2009-12-02 11:50:02 +01:00 committed by Alexander Larsson
parent 0f25115ffc
commit 40bf3aa5d2

View File

@ -1361,9 +1361,8 @@ g_object_new_valist (GType object_type,
params = g_renew (GParameter, params, n_alloced_params);
}
params[n_params].name = name;
params[n_params].value.g_type = 0;
g_value_init (&params[n_params].value, G_PARAM_SPEC_VALUE_TYPE (pspec));
G_VALUE_COLLECT (&params[n_params].value, var_args, 0, &error);
G_VALUE_COLLECT_INIT (&params[n_params].value, G_PARAM_SPEC_VALUE_TYPE (pspec),
var_args, 0, &error);
if (error)
{
g_warning ("%s: %s", G_STRFUNC, error);
@ -1476,9 +1475,8 @@ g_object_set_valist (GObject *object,
break;
}
g_value_init (&value, G_PARAM_SPEC_VALUE_TYPE (pspec));
G_VALUE_COLLECT (&value, var_args, 0, &error);
G_VALUE_COLLECT_INIT (&value, G_PARAM_SPEC_VALUE_TYPE (pspec), var_args,
0, &error);
if (error)
{
g_warning ("%s: %s", G_STRFUNC, error);