From 5a41f63426efb6f715119d23acdab0b2676c72ad Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Sun, 28 Dec 2014 18:11:49 -0800 Subject: gtkstylecontext: Don't try to emit a signal when finalizing --- gtk/gtkstylecontext.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'gtk') diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c index 77739972ec..fcc127013e 100644 --- a/gtk/gtkstylecontext.c +++ b/gtk/gtkstylecontext.c @@ -522,6 +522,18 @@ _gtk_style_context_update_animating (GtkStyleContext *context) gtk_style_context_stop_animating (context); } +static void +gtk_style_context_clear_parent (GtkStyleContext *context) +{ + GtkStyleContextPrivate *priv = context->priv; + + if (priv->parent) + { + priv->parent->priv->children = g_slist_remove (priv->parent->priv->children, context); + g_object_unref (priv->parent); + } +} + static void gtk_style_context_finalize (GObject *object) { @@ -536,7 +548,7 @@ gtk_style_context_finalize (GObject *object) /* children hold a reference to us */ g_assert (priv->children == NULL); - gtk_style_context_set_parent (style_context, NULL); + gtk_style_context_clear_parent (style_context); gtk_style_context_set_cascade (style_context, NULL); @@ -1397,11 +1409,7 @@ gtk_style_context_set_parent (GtkStyleContext *context, gtk_style_context_set_invalid (parent, TRUE); } - if (priv->parent) - { - priv->parent->priv->children = g_slist_remove (priv->parent->priv->children, context); - g_object_unref (priv->parent); - } + gtk_style_context_clear_parent (context); priv->parent = parent; -- cgit v1.2.1