ack ----- Original Message ----- > spice_session_start_migrating() swaps connection details between 2 > SpiceSession instances. Instead of doing it manually, use a macro to do > it for us. > --- > gtk/spice-session.c | 30 ++++++++++++++---------------- > 1 file changed, 14 insertions(+), 16 deletions(-) > > diff --git a/gtk/spice-session.c b/gtk/spice-session.c > index 50ad291..7f15d98 100644 > --- a/gtk/spice-session.c > +++ b/gtk/spice-session.c > @@ -1559,6 +1559,15 @@ void spice_session_switching_disconnect(SpiceSession > *self) > cache_clear_all(self); > } > > +#define SWAP_STR(x, y) G_STMT_START { \ > + const gchar *tmp; \ > + const gchar *a = x; \ > + const gchar *b = y; \ > + tmp = a; \ > + a = b; \ > + b = tmp; \ > +} G_STMT_END > + > G_GNUC_INTERNAL > void spice_session_start_migrating(SpiceSession *session, > gboolean full_migration) > @@ -1567,7 +1576,6 @@ void spice_session_start_migrating(SpiceSession > *session, > > SpiceSessionPrivate *s = session->priv; > SpiceSessionPrivate *m; > - gchar *tmp; > > g_return_if_fail(s->migration != NULL); > m = s->migration->priv; > @@ -1578,21 +1586,10 @@ void spice_session_start_migrating(SpiceSession > *session, > spice_session_set_migration_state(session, > SPICE_SESSION_MIGRATION_MIGRATING); > > /* swapping connection details happens after MIGRATION_CONNECTING state > */ > - tmp = s->host; > - s->host = m->host; > - m->host = tmp; > - > - tmp = s->port; > - s->port = m->port; > - m->port = tmp; > - > - tmp = s->tls_port; > - s->tls_port = m->tls_port; > - m->tls_port = tmp; > - > - tmp = s->unix_path; > - s->unix_path = m->unix_path; > - m->unix_path = tmp; > + SWAP_STR(s->host, m->host); > + SWAP_STR(s->port, m->port); > + SWAP_STR(s->tls_port, m->tls_port); > + SWAP_STR(s->unix_path, m->unix_path); > > g_warn_if_fail(ring_get_length(&s->channels) == > ring_get_length(&m->channels)); > > @@ -1600,6 +1597,7 @@ void spice_session_start_migrating(SpiceSession > *session, > ring_get_length(&s->channels), > ring_get_length(&m->channels)); > s->migration_left = spice_session_get_channels(session); > } > +#undef SWAP_STR > > G_GNUC_INTERNAL > SpiceChannel* spice_session_lookup_channel(SpiceSession *session, gint id, > gint type) > -- > 2.1.0 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/spice-devel > _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel