From 21fcca71dc18e7bd4a16b38a6d5cad00846e3b07 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 6 Feb 2008 09:36:47 +0000 Subject: [PATCH] make GParamGType require the set type during construction instead of using * gparamspecs.c: (param_gtype_set_default), (param_gtype_validate): make GParamGType require the set type during construction instead of using G_TYPE_NONE, which causes issues when setting. Bug 513073 - g_param_spec_gtype breaks with G_PARAM_CONSTRUCT svn path=/trunk/; revision=6457 --- gobject/ChangeLog | 7 +++++++ gobject/gparamspecs.c | 6 ++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gobject/ChangeLog b/gobject/ChangeLog index 983d634..f5a391d 100644 --- a/gobject/ChangeLog +++ b/gobject/ChangeLog @@ -1,3 +1,10 @@ +2008-02-06 Benjamin Otte + + * gparamspecs.c: (param_gtype_set_default), (param_gtype_validate): + make GParamGType require the set type during construction instead of + using G_TYPE_NONE, which causes issues when setting. + Bug 513073 - g_param_spec_gtype breaks with G_PARAM_CONSTRUCT + 2008-02-05 18:52:07 Tim Janik * gtype.c: added recursive mutex to protect class initialization, diff --git a/gobject/gparamspecs.c b/gobject/gparamspecs.c index 30c744b..5cbe605 100644 --- a/gobject/gparamspecs.c +++ b/gobject/gparamspecs.c @@ -1042,7 +1042,9 @@ static void param_gtype_set_default (GParamSpec *pspec, GValue *value) { - value->data[0].v_long = G_TYPE_NONE; + GParamSpecGType *tspec = G_PARAM_SPEC_GTYPE (pspec); + + value->data[0].v_long = tspec->is_a_type; } static gboolean @@ -1055,7 +1057,7 @@ param_gtype_validate (GParamSpec *pspec, if (tspec->is_a_type != G_TYPE_NONE && !g_type_is_a (gtype, tspec->is_a_type)) { - value->data[0].v_long = G_TYPE_NONE; + value->data[0].v_long = tspec->is_a_type; changed++; } -- 2.7.4