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
This commit is contained in:
Benjamin Otte 2008-02-06 09:36:47 +00:00
parent 6279f2a891
commit 21fcca71dc
2 changed files with 11 additions and 2 deletions

View File

@ -1,3 +1,10 @@
2008-02-06 Benjamin Otte <otte@gnome.org>
* 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 <timj@imendio.com> 2008-02-05 18:52:07 Tim Janik <timj@imendio.com>
* gtype.c: added recursive mutex to protect class initialization, * gtype.c: added recursive mutex to protect class initialization,

View File

@ -1042,7 +1042,9 @@ static void
param_gtype_set_default (GParamSpec *pspec, param_gtype_set_default (GParamSpec *pspec,
GValue *value) 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 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)) 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++; changed++;
} }