dup the new value before freeing the old, just in case. (#172142, Morten

2005-05-20  Matthias Clasen  <mclasen@redhat.com>

	* gvaluetypes.c (g_value_set_string): dup the new value
	before freeing the old, just in case.  (#172142, Morten
	Welinder)
This commit is contained in:
Matthias Clasen 2005-05-20 20:51:38 +00:00 committed by Matthias Clasen
parent 19c6921798
commit b5c20b801c
2 changed files with 13 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2005-05-20 Matthias Clasen <mclasen@redhat.com>
* gvaluetypes.c (g_value_set_string): dup the new value
before freeing the old, just in case. (#172142, Morten
Welinder)
2005-05-13 Matthias Clasen <mclasen@redhat.com>
* glib-genmarshal.1: Mention 64bit integer types.

View File

@ -739,13 +739,18 @@ void
g_value_set_string (GValue *value,
const gchar *v_string)
{
gchar *new_val;
g_return_if_fail (G_VALUE_HOLDS_STRING (value));
new_val = g_strdup (v_string);
if (value->data[1].v_uint & G_VALUE_NOCOPY_CONTENTS)
value->data[1].v_uint = 0;
else
g_free (value->data[0].v_pointer);
value->data[0].v_pointer = g_strdup (v_string);
value->data[0].v_pointer = new_val;
}
void