Hey, On Thu, Nov 13, 2014 at 06:20:37PM +0100, Marc-André Lureau wrote: > This isn't required, but makes it easier to track reference issues, as > you have guarantee that callbacks won't be executed if the objects are > disposed. > --- > src/virt-viewer-session-spice.c | 51 ++++++++++++++++++++++------------------- > 1 file changed, 28 insertions(+), 23 deletions(-) > > diff --git a/src/virt-viewer-session-spice.c b/src/virt-viewer-session-spice.c > index e28fb40..2eb2224 100644 > --- a/src/virt-viewer-session-spice.c > +++ b/src/virt-viewer-session-spice.c > @@ -634,13 +634,13 @@ virt_viewer_session_spice_usb_device_selection(VirtViewerSession *session, > > usb_device_widget = spice_usb_device_widget_new(priv->session, > "%s %s"); > - g_signal_connect(usb_device_widget, "connect-failed", > - G_CALLBACK(usb_connect_failed), self); > + virt_viewer_signal_connect_object(usb_device_widget, "connect-failed", > + G_CALLBACK(usb_connect_failed), self, 0); > gtk_box_pack_start(GTK_BOX(area), usb_device_widget, TRUE, TRUE, 0); > > /* This shrinks the dialog when USB devices are unplugged */ > - g_signal_connect(usb_device_widget, "remove", > - G_CALLBACK(remove_cb), dialog); > + virt_viewer_signal_connect_object(usb_device_widget, "remove", > + G_CALLBACK(remove_cb), dialog, 0); Indentation is odd here, > > /* show and run */ > gtk_widget_show_all(dialog); > @@ -738,8 +738,8 @@ virt_viewer_session_spice_channel_new(SpiceSession *s, > > g_return_if_fail(self != NULL); > > - g_signal_connect(channel, "open-fd", > - G_CALLBACK(virt_viewer_session_spice_channel_open_fd_request), self); > + virt_viewer_signal_connect_object(channel, "open-fd", > + G_CALLBACK(virt_viewer_session_spice_channel_open_fd_request), self, 0); > here too > g_object_get(channel, "channel-id", &id, NULL); > > @@ -750,22 +750,23 @@ virt_viewer_session_spice_channel_new(SpiceSession *s, > g_signal_handlers_disconnect_by_func(self->priv->main_channel, > virt_viewer_session_spice_main_channel_event, self); > > - g_signal_connect(channel, "channel-event", > - G_CALLBACK(virt_viewer_session_spice_main_channel_event), self); > + virt_viewer_signal_connect_object(channel, "channel-event", > + G_CALLBACK(virt_viewer_session_spice_main_channel_event), self, 0); Indentation again > self->priv->main_channel = SPICE_MAIN_CHANNEL(channel); > g_object_set(G_OBJECT(channel), > "disable-display-position", FALSE, > "disable-display-align", TRUE, > NULL); > > - g_signal_connect(channel, "notify::agent-connected", G_CALLBACK(agent_connected_changed), self); > + virt_viewer_signal_connect_object(channel, "notify::agent-connected", > + G_CALLBACK(agent_connected_changed), self, 0); Ditto > } > > if (SPICE_IS_DISPLAY_CHANNEL(channel)) { > g_signal_emit_by_name(session, "session-initialized"); > > - g_signal_connect(channel, "notify::monitors", > - G_CALLBACK(virt_viewer_session_spice_display_monitors), self); > + virt_viewer_signal_connect_object(channel, "notify::monitors", > + G_CALLBACK(virt_viewer_session_spice_display_monitors), self, 0); Indentation > > spice_channel_connect(channel); > } ACK to the patch apart from these cosmetic issues. There are still dozens of calls to g_signal_connect in the codebase after this patch, why are these special? Christophe
Attachment:
pgpajHQRHczN8.pgp
Description: PGP signature
_______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list