From 07a3d7b2cd64686f17394b07a1fecce270005de0 Mon Sep 17 00:00:00 2001 From: Marc-André Lureau Date: Tue, 15 Mar 2011 16:21:47 +0100 Subject: gtk: fix crash when clipboard_primary owner change Clean up handler when destroyed. /usr/local/stow/virt-manager/share/virt-manager/virt-manager.py:450: Warning: g_type_instance_get_private: assertion `instance != NULL && instance->g_class != NULL' failed gtk.main() Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ffff7fd4720 (LWP 19098)] 0x00007fffe8881ab2 in get_selection_from_clipboard (d=0x0, cb=0x1df8510) at spice-widget.c:996 996 if (cb == d->clipboard) { (gdb) bt at spice-widget.c:996 0x30f5750, data=0x1ea3000) at spice-widget.c:1114 0x0, n_param_values=2, param_values=0x1e96a90, invocation_hint= 0x7fffffffd280) at gclosure.c:767 detail=0, instance=0x1df8510, emission_return=0x0, instance_and_params= 0x1e96a90) at gsignal.c:3252 instance=, signal_id=, --- gtk/spice-widget.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gtk/spice-widget.c b/gtk/spice-widget.c index 98920b9..bdfb2fe 100644 --- a/gtk/spice-widget.c +++ b/gtk/spice-widget.c @@ -202,6 +202,8 @@ static void spice_display_destroy(GtkObject *obj) display); g_signal_handlers_disconnect_by_func(d->clipboard, G_CALLBACK(clipboard_owner_change), display); + g_signal_handlers_disconnect_by_func(d->clipboard_primary, G_CALLBACK(clipboard_owner_change), + display); disconnect_main(display); disconnect_display(display); -- cgit v1.2.3