diff --git a/ChangeLog b/ChangeLog index 59b4c16bb..0ae1ac616 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,10 +7,6 @@ 2007-04-24 Michael Natterer - * gobject/gparamspecs.c (param_string_validate): don't free or - modify static strings, dup them when needed and clear the - G_VALUE_NOCOPY_CONTENTS flag. Fixes bug #432895. - * tests/gobject/paramspec-test.c: test all GParamSpecString validations with static and allocated strings. diff --git a/gobject/ChangeLog b/gobject/ChangeLog index 14252b4ef..0f1f9e85d 100644 --- a/gobject/ChangeLog +++ b/gobject/ChangeLog @@ -1,3 +1,14 @@ +2007-04-25 Michael Natterer + + * gparamspecs.c (param_string_validate): also clear the + NOCOPY_CONTENTS flag when replacing NULL with the empty string. + +2007-04-24 Michael Natterer + + * gparamspecs.c (param_string_validate): don't free or modify + static strings, dup them when needed and clear the + G_VALUE_NOCOPY_CONTENTS flag. Fixes bug #432895. + Tue Apr 3 12:34:14 2007 Tim Janik * gobject.[hc]: invoke GObjectClass.constructed() only for newly diff --git a/gobject/gparamspecs.c b/gobject/gparamspecs.c index ea502b3d3..5ba897711 100644 --- a/gobject/gparamspecs.c +++ b/gobject/gparamspecs.c @@ -665,11 +665,12 @@ param_string_validate (GParamSpec *pspec, } if (sspec->ensure_non_null && !string) { + value->data[1].v_uint &= ~G_VALUE_NOCOPY_CONTENTS; value->data[0].v_pointer = g_strdup (""); changed++; string = value->data[0].v_pointer; } - + return changed; }