summaryrefslogtreecommitdiff
path: root/mixer
diff options
context:
space:
mode:
authorCallum McKenzie <callum@spooky-possum.org>2009-05-22 15:28:11 +1200
committerCallum McKenzie <callum@spooky-possum.org>2009-05-22 15:35:48 +1200
commit028233636bb9fcd273a662794f397c8c02cdf466 (patch)
treefce808c8a938e95a8c41e5e951ae430810cbc6bc /mixer
parentee8ec22dfafb8aadd5d47a09a99756bbb5937b98 (diff)
Fix a reference counting bug in the mixer.
The dock was being unrefed from the applet, but the applet had never claimed ownership in the firstplace. Hence odd crashes, see bug 546735.
Diffstat (limited to 'mixer')
-rw-r--r--mixer/ChangeLog6
-rw-r--r--mixer/applet.c1
2 files changed, 7 insertions, 0 deletions
diff --git a/mixer/ChangeLog b/mixer/ChangeLog
index 5036a6bea..d768ab4bc 100644
--- a/mixer/ChangeLog
+++ b/mixer/ChangeLog
@@ -1,3 +1,9 @@
+2009-05-22 Callum McKenzie <callum@spooky-possum.org>
+
+ * applet.c (gnome_volume_applet_dispose): Explicitly ref the dock,
+ to match our unref in the dispose code. This was creating odd
+ crashes due to double-dereferencing. See bug 546735.
+
2009-05-20 Callum McKenzie <callum@spooky-possum.org>
* applet.c:
diff --git a/mixer/applet.c b/mixer/applet.c
index dd49c2646..7dcb41150 100644
--- a/mixer/applet.c
+++ b/mixer/applet.c
@@ -918,6 +918,7 @@ gnome_volume_applet_orientation (PanelApplet *_applet,
}
dock = gnome_volume_applet_dock_new (GTK_ORIENTATION_VERTICAL,
applet);
+ g_object_ref_sink (dock); /* It isn't a child, but we do own it. */
gtk_widget_add_events (dock, GDK_FOCUS_CHANGE_MASK);
g_signal_connect (G_OBJECT (dock), "focus-out-event",
G_CALLBACK (gnome_volume_applet_dock_focus_out),