[Spice-devel] [PATCH spice-gtk 07/13] migration: remove migration cleanup from dispose

Marc-André Lureau marcandre.lureau at redhat.com
Sun Nov 9 08:31:39 PST 2014


The spice_session_disconnect() method now call
spice_session_abort_migration(), so it is not necessary to do migration
cleanups in dispose anymore
---
 gtk/spice-session.c | 27 +++++++++++----------------
 1 file changed, 11 insertions(+), 16 deletions(-)

diff --git a/gtk/spice-session.c b/gtk/spice-session.c
index 39b5c85..6cbd2b6 100644
--- a/gtk/spice-session.c
+++ b/gtk/spice-session.c
@@ -180,21 +180,9 @@ spice_session_dispose(GObject *gobject)
 
     spice_session_disconnect(session);
 
-    if (s->migration) {
-        spice_session_disconnect(s->migration);
-        g_object_unref(s->migration);
-        s->migration = NULL;
-    }
-
-    if (s->migration_left) {
-        g_list_free(s->migration_left);
-        s->migration_left = NULL;
-    }
-
-    if (s->after_main_init) {
-        g_source_remove(s->after_main_init);
-        s->after_main_init = 0;
-    }
+    g_warn_if_fail(s->migration == NULL);
+    g_warn_if_fail(s->migration_left == NULL);
+    g_warn_if_fail(s->after_main_init == 0);
 
     g_clear_object(&s->audio_manager);
     g_clear_object(&s->desktop_integration);
@@ -1475,6 +1463,7 @@ void spice_session_abort_migration(SpiceSession *session)
         return;
     }
 
+    SPICE_DEBUG("migration: abort");
     if (s->migration_state != SPICE_SESSION_MIGRATION_MIGRATING)
         goto end;
 
@@ -1500,6 +1489,12 @@ end:
     g_object_unref(s->migration);
     s->migration = NULL;
 
+    s->migrate_wait_init = FALSE;
+    if (s->after_main_init) {
+        g_source_remove(s->after_main_init);
+        s->after_main_init = 0;
+    }
+
     spice_session_set_migration_state(session, SPICE_SESSION_MIGRATION_NONE);
 }
 
@@ -1528,7 +1523,7 @@ void spice_session_channel_migrate(SpiceSession *session, SpiceChannel *channel)
     s->migration_left = g_list_remove(s->migration_left, channel);
 
     if (g_list_length(s->migration_left) == 0) {
-        CHANNEL_DEBUG(channel, "all channel migrated");
+        CHANNEL_DEBUG(channel, "migration: all channel migrated, success");
         spice_session_disconnect(s->migration);
         g_object_unref(s->migration);
         s->migration = NULL;
-- 
1.9.3



More information about the Spice-devel mailing list