[gtk+] gtkstylecontext: Don't try to emit a signal when finalizing



commit 5a41f63426efb6f715119d23acdab0b2676c72ad
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Sun Dec 28 18:11:49 2014 -0800

    gtkstylecontext: Don't try to emit a signal when finalizing

 gtk/gtkstylecontext.c |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)
---
diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c
index 7773997..fcc1270 100644
--- a/gtk/gtkstylecontext.c
+++ b/gtk/gtkstylecontext.c
@@ -523,6 +523,18 @@ _gtk_style_context_update_animating (GtkStyleContext *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)
 {
   GtkStyleContextPrivate *priv;
@@ -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;
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]