summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Untz <vuntz@gnome.org>2006-08-10 00:35:53 +0000
committerVincent Untz <vuntz@src.gnome.org>2006-08-10 00:35:53 +0000
commit63887271859061f09e7818c06676d8441794c18b (patch)
tree3545fbe6912fc6f9329e4f6482ff0ce0bf66a531
parent951206290d6417f05f03003a3710e868d6178c59 (diff)
downloadlibwnck-63887271859061f09e7818c06676d8441794c18b.tar.gz
don't unref NULL variables, and set source ids to 0 after removing them
2006-08-10 Vincent Untz <vuntz@gnome.org> * libwnck/tasklist.c: (wnck_tasklist_finalize): don't unref NULL variables, and set source ids to 0 after removing them Fix a crash I just got :-)
-rw-r--r--ChangeLog6
-rw-r--r--libwnck/tasklist.c17
2 files changed, 19 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 9a5c6c2..c1647fe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-08-10 Vincent Untz <vuntz@gnome.org>
+
+ * libwnck/tasklist.c: (wnck_tasklist_finalize): don't unref NULL
+ variables, and set source ids to 0 after removing them
+ Fix a crash I just got :-)
+
2006-08-08 Vincent Untz <vuntz@gnome.org>
* configure.in: post-release bump to 2.15.92
diff --git a/libwnck/tasklist.c b/libwnck/tasklist.c
index 3fd3137..98fa779 100644
--- a/libwnck/tasklist.c
+++ b/libwnck/tasklist.c
@@ -742,10 +742,16 @@ wnck_tasklist_finalize (GObject *object)
tasklist->priv->class_group_hash = NULL;
if (tasklist->priv->activate_timeout_id != 0)
- gtk_timeout_remove (tasklist->priv->activate_timeout_id);
+ {
+ gtk_timeout_remove (tasklist->priv->activate_timeout_id);
+ tasklist->priv->activate_timeout_id = 0;
+ }
if (tasklist->priv->idle_callback_tag != 0)
- g_source_remove (tasklist->priv->idle_callback_tag);
+ {
+ g_source_remove (tasklist->priv->idle_callback_tag);
+ tasklist->priv->idle_callback_tag = 0;
+ }
if (tasklist->priv->tooltips)
{
@@ -757,8 +763,11 @@ wnck_tasklist_finalize (GObject *object)
tasklist->priv->size_hints = NULL;
tasklist->priv->size_hints_len = 0;
- g_object_unref (tasklist->priv->background);
- tasklist->priv->background = NULL;
+ if (tasklist->priv->background)
+ {
+ g_object_unref (tasklist->priv->background);
+ tasklist->priv->background = NULL;
+ }
g_free (tasklist->priv);
tasklist->priv = NULL;