diff --git a/gobject/ChangeLog b/gobject/ChangeLog index 983d63445..f5a391dc2 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 30c744b0e..5cbe6054a 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++; }