]> Pileus Git - ~andy/gtk/commitdiff
gtkcssprovider: Use g_slice_dup() to copy GValues around
authorCarlos Garnacho <carlosg@gnome.org>
Mon, 30 May 2011 17:04:22 +0000 (19:04 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Mon, 30 May 2011 17:13:36 +0000 (19:13 +0200)
GValues stored in GtkCssRulesets are gslice managed, so don't
g_memdup() GValues from shorthand properties. This fixes
memory corruptions when reloading contents in a GtkCssProvider.

gtk/gtkcssprovider.c

index d433573381e2d2477ca11309f8004d30936a7167..4fe675921c1291d9bb3ae8b0745609ba4b57d2a9 100644 (file)
@@ -1086,9 +1086,9 @@ gtk_css_ruleset_add (GtkCssRuleset          *ruleset,
         {
           const GtkStyleProperty *child;
           GValue *value;
-          
+
           child = _gtk_style_property_lookup (parameters[i].name);
-          value = g_memdup (&parameters[i].value, sizeof (GValue));
+          value = g_slice_dup (GValue, &parameters[i].value);
           gtk_css_ruleset_add (ruleset, child, value);
         }
       g_free (parameters);