libgimpconfig: fix string deserialization for some cases

In gimp_config_deserialize_fundamental(), we can't use
g_value_set_static_string() because that will in the end pass the
GScanner's temporary scanner->value.v_string to
GObject::set_property(), and depending on set_property()'s
implementation, we might not dup the string (for example objects
created via gimp_config_type_register() will simply use g_value_copy()
and end up with a dangling pointer as a string member).
This commit is contained in:
Michael Natterer 2020-06-08 22:30:30 +02:00
parent c16e310c36
commit 2e6656599d
1 changed files with 1 additions and 1 deletions

View File

@ -453,7 +453,7 @@ gimp_config_deserialize_fundamental (GValue *value,
{
case G_TYPE_STRING:
if (scanner_string_utf8_valid (scanner, prop_spec->name))
g_value_set_static_string (value, scanner->value.v_string);
g_value_set_string (value, scanner->value.v_string);
else
return G_TOKEN_NONE;
break;