summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hervey <bilboed@bilboed.com>2009-12-02 11:50:02 +0100
committerEdward Hervey <bilboed@bilboed.com>2009-12-07 11:28:50 +0100
commitf23403562777e82954d1cbb6b72eed3031407328 (patch)
tree4dad3ce408ea33e22a22ef129a2c3c8675d99960
parent1c0779f61d3dcb79701dc97a33f2d31482662fef (diff)
gobject: Use new G_VALUE_COLLECT_FULL 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
-rw-r--r--gobject/gobject.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/gobject/gobject.c b/gobject/gobject.c
index 58554c337..fe77f7618 100644
--- a/gobject/gobject.c
+++ b/gobject/gobject.c
@@ -1357,9 +1357,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_FULL (&params[n_params].value, G_PARAM_SPEC_VALUE_TYPE (pspec),
+ var_args, 0, &error);
if (error)
{
g_warning ("%s: %s", G_STRFUNC, error);
@@ -1472,9 +1471,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_FULL (&value, G_PARAM_SPEC_VALUE_TYPE (pspec), var_args,
+ 0, &error);
if (error)
{
g_warning ("%s: %s", G_STRFUNC, error);