Blob Blame History Raw
From e4680df886acc00f581e65a4cf6800687637b19e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= <fidencio@redhat.com>
Date: Tue, 15 Jul 2014 16:07:44 +0200
Subject: [PATCH] Don't use _GET_PRIVATE all the time

Let's make use of the priv members in the structs, which are much much
faster. Also, to keep the type-safety, the SPICE_IS_* macros were added
in the public methods affected by this patch.

Patch based on an old patch from Alexander Larsson (alexl@redhat.com).
---
 gtk/channel-cursor.c     |   3 +-
 gtk/channel-smartcard.c  |  29 +++++++------
 gtk/smartcard-manager.c  |   4 +-
 gtk/spice-channel.c      |  30 ++++++++-----
 gtk/spice-gstaudio.c     |  11 ++---
 gtk/spice-pulse.c        |  39 ++++++++++-------
 gtk/spice-session.c      | 111 +++++++++++++++++++++++++++--------------------
 gtk/spice-widget-cairo.c |   9 ++--
 gtk/spice-widget-x11.c   |   6 +--
 gtk/spice-widget.c       | 107 +++++++++++++++++++++++----------------------
 10 files changed, 192 insertions(+), 157 deletions(-)

diff --git a/gtk/channel-cursor.c b/gtk/channel-cursor.c
index 3f49641..e887d10 100644
--- a/gtk/channel-cursor.c
+++ b/gtk/channel-cursor.c
@@ -86,7 +86,8 @@ static void spice_cursor_channel_init(SpiceCursorChannel *channel)
 
 static void spice_cursor_channel_finalize(GObject *obj)
 {
-    SpiceCursorChannelPrivate *c = SPICE_CURSOR_CHANNEL_GET_PRIVATE(obj);
+    SpiceCursorChannel *channel = SPICE_CURSOR_CHANNEL(obj);
+    SpiceCursorChannelPrivate *c = channel->priv;
 
     g_clear_pointer(&c->cursors, cache_unref);
 
diff --git a/gtk/channel-smartcard.c b/gtk/channel-smartcard.c
index 88887a7..d27360c 100644
--- a/gtk/channel-smartcard.c
+++ b/gtk/channel-smartcard.c
@@ -158,7 +158,8 @@ static void spice_smartcard_channel_constructed(GObject *object)
 
 static void spice_smartcard_channel_finalize(GObject *obj)
 {
-    SpiceSmartcardChannelPrivate *c = SPICE_SMARTCARD_CHANNEL_GET_PRIVATE(obj);
+    SpiceSmartcardChannel *channel = SPICE_SMARTCARD_CHANNEL(obj);
+    SpiceSmartcardChannelPrivate *c = channel->priv;
 
     if (c->pending_card_insertions != NULL) {
         g_hash_table_destroy(c->pending_card_insertions);
@@ -187,7 +188,8 @@ static void spice_smartcard_channel_finalize(GObject *obj)
 
 static void spice_smartcard_channel_reset(SpiceChannel *channel, gboolean migrating)
 {
-    SpiceSmartcardChannelPrivate *c = SPICE_SMARTCARD_CHANNEL_GET_PRIVATE(channel);
+    SpiceSmartcardChannel *smartcard_channel = SPICE_SMARTCARD_CHANNEL(channel);
+    SpiceSmartcardChannelPrivate *c = smartcard_channel->priv;
 
     g_hash_table_remove_all(c->pending_card_insertions);
     g_hash_table_remove_all(c->pending_reader_removals);
@@ -476,11 +478,11 @@ static void spice_smartcard_channel_up(SpiceChannel *channel)
 static void handle_smartcard_msg(SpiceChannel *channel, SpiceMsgIn *in)
 {
 #ifdef USE_SMARTCARD
-    SpiceSmartcardChannelPrivate *priv = SPICE_SMARTCARD_CHANNEL_GET_PRIVATE(channel);
+    SpiceSmartcardChannel *smartcard_channel = SPICE_SMARTCARD_CHANNEL(channel);
+    SpiceSmartcardChannelPrivate *priv = smartcard_channel->priv;
     SpiceMsgSmartcard *msg = spice_msg_in_parsed(in);
     VReader *reader;
 
-    priv = SPICE_SMARTCARD_CHANNEL_GET_PRIVATE(channel);
     CHANNEL_DEBUG(channel, "handle msg %d", msg->type);
     switch (msg->type) {
         case VSC_Error:
@@ -497,15 +499,14 @@ static void handle_smartcard_msg(SpiceChannel *channel, SpiceMsgIn *in)
                                            priv->pending_reader_additions);
                     vreader_set_id(reader, msg->reader_id);
 
-                    if (spice_channel_has_pending_card_insertion(SPICE_SMARTCARD_CHANNEL(channel), reader)) {
-                        send_msg_atr(SPICE_SMARTCARD_CHANNEL(channel), reader);
-                        spice_channel_drop_pending_card_insertion(SPICE_SMARTCARD_CHANNEL(channel), reader);
+                    if (spice_channel_has_pending_card_insertion(smartcard_channel, reader)) {
+                        send_msg_atr(smartcard_channel, reader);
+                        spice_channel_drop_pending_card_insertion(smartcard_channel, reader);
                     }
 
-                    if (spice_channel_has_pending_reader_removal(SPICE_SMARTCARD_CHANNEL(channel), reader)) {
-                        send_msg_generic(SPICE_SMARTCARD_CHANNEL(channel),
-                                         reader, VSC_CardRemove);
-                        spice_channel_drop_pending_reader_removal(SPICE_SMARTCARD_CHANNEL(channel), reader);
+                    if (spice_channel_has_pending_reader_removal(smartcard_channel, reader)) {
+                        send_msg_generic(smartcard_channel, reader, VSC_CardRemove);
+                        spice_channel_drop_pending_reader_removal(smartcard_channel, reader);
                     }
                     break;
                 case VSC_APDU:
@@ -518,7 +519,7 @@ static void handle_smartcard_msg(SpiceChannel *channel, SpiceMsgIn *in)
                     g_warning("Unexpected message: %d", priv->in_flight_message->message_type);
                     break;
             }
-            smartcard_message_complete_in_flight(SPICE_SMARTCARD_CHANNEL(channel));
+            smartcard_message_complete_in_flight(smartcard_channel);
 
             break;
 
@@ -537,13 +538,13 @@ static void handle_smartcard_msg(SpiceChannel *channel, SpiceMsgIn *in)
                                               msg->data, msg->length,
                                               data_out, &data_out_len);
             if (reader_status == VREADER_OK) {
-                send_msg_generic_with_data(SPICE_SMARTCARD_CHANNEL(channel),
+                send_msg_generic_with_data(smartcard_channel,
                                            reader, VSC_APDU,
                                            data_out, data_out_len, FALSE);
             } else {
                 uint32_t error_code;
                 error_code = GUINT32_TO_LE(reader_status);
-                send_msg_generic_with_data(SPICE_SMARTCARD_CHANNEL(channel),
+                send_msg_generic_with_data(smartcard_channel,
                                            reader, VSC_Error,
                                            (uint8_t*)&error_code,
                                            sizeof (error_code), FALSE);
diff --git a/gtk/smartcard-manager.c b/gtk/smartcard-manager.c
index 683a47e..9e228e9 100644
--- a/gtk/smartcard-manager.c
+++ b/gtk/smartcard-manager.c
@@ -116,9 +116,9 @@ static void spice_smartcard_manager_dispose(GObject *gobject)
 
 static void spice_smartcard_manager_finalize(GObject *gobject)
 {
-    SpiceSmartcardManagerPrivate *priv;
+    SpiceSmartcardManager *manager = SPICE_SMARTCARD_MANAGER(gobject);
+    SpiceSmartcardManagerPrivate *priv = manager->priv;
 
-    priv = SPICE_SMARTCARD_MANAGER_GET_PRIVATE(gobject);
     if (priv->monitor_id != 0) {
         g_source_remove(priv->monitor_id);
         priv->monitor_id = 0;
diff --git a/gtk/spice-channel.c b/gtk/spice-channel.c
index 951da65..9a2b5b4 100644
--- a/gtk/spice-channel.c
+++ b/gtk/spice-channel.c
@@ -217,7 +217,7 @@ static void spice_channel_get_property(GObject    *gobject,
 G_GNUC_INTERNAL
 gint spice_channel_get_channel_id(SpiceChannel *channel)
 {
-    SpiceChannelPrivate *c = SPICE_CHANNEL_GET_PRIVATE(channel);
+    SpiceChannelPrivate *c = channel->priv;
 
     g_return_val_if_fail(c != NULL, 0);
     return c->channel_id;
@@ -226,7 +226,7 @@ gint spice_channel_get_channel_id(SpiceChannel *channel)
 G_GNUC_INTERNAL
 gint spice_channel_get_channel_type(SpiceChannel *channel)
 {
-    SpiceChannelPrivate *c = SPICE_CHANNEL_GET_PRIVATE(channel);
+    SpiceChannelPrivate *c = channel->priv;
 
     g_return_val_if_fail(c != NULL, 0);
     return c->channel_type;
@@ -2459,11 +2459,13 @@ gboolean spice_channel_connect(SpiceChannel *channel)
  **/
 gboolean spice_channel_open_fd(SpiceChannel *channel, int fd)
 {
-    SpiceChannelPrivate *c = SPICE_CHANNEL_GET_PRIVATE(channel);
+    SpiceChannelPrivate *c;
 
-    g_return_val_if_fail(c != NULL, FALSE);
+    g_return_val_if_fail(SPICE_IS_CHANNEL(channel), FALSE);
+    g_return_val_if_fail(channel->priv != NULL, FALSE);
     g_return_val_if_fail(fd >= -1, FALSE);
 
+    c = channel->priv;
     c->fd = fd;
 
     return channel_connect(channel);
@@ -2472,7 +2474,7 @@ gboolean spice_channel_open_fd(SpiceChannel *channel, int fd)
 /* system or coroutine context */
 static void channel_reset(SpiceChannel *channel, gboolean migrating)
 {
-    SpiceChannelPrivate *c = SPICE_CHANNEL_GET_PRIVATE(channel);
+    SpiceChannelPrivate *c = channel->priv;
 
     if (c->connect_delayed_id) {
         g_source_remove(c->connect_delayed_id);
@@ -2545,7 +2547,7 @@ void spice_channel_reset(SpiceChannel *channel, gboolean migrating)
 /* system or coroutine context */
 static void channel_disconnect(SpiceChannel *channel)
 {
-    SpiceChannelPrivate *c = SPICE_CHANNEL_GET_PRIVATE(channel);
+    SpiceChannelPrivate *c = channel->priv;
 
     g_return_if_fail(c != NULL);
 
@@ -2574,10 +2576,14 @@ static void channel_disconnect(SpiceChannel *channel)
  **/
 void spice_channel_disconnect(SpiceChannel *channel, SpiceChannelEvent reason)
 {
-    SpiceChannelPrivate *c = SPICE_CHANNEL_GET_PRIVATE(channel);
+    SpiceChannelPrivate *c;
 
     CHANNEL_DEBUG(channel, "channel disconnect %d", reason);
-    g_return_if_fail(c != NULL);
+
+    g_return_if_fail(SPICE_IS_CHANNEL(channel));
+    g_return_if_fail(channel->priv != NULL);
+
+    c = channel->priv;
 
     if (c->state == SPICE_CHANNEL_STATE_UNCONNECTED)
         return;
@@ -2716,8 +2722,8 @@ enum spice_channel_state spice_channel_get_state(SpiceChannel *channel)
 G_GNUC_INTERNAL
 void spice_channel_swap(SpiceChannel *channel, SpiceChannel *swap, gboolean swap_msgs)
 {
-    SpiceChannelPrivate *c = SPICE_CHANNEL_GET_PRIVATE(channel);
-    SpiceChannelPrivate *s = SPICE_CHANNEL_GET_PRIVATE(swap);
+    SpiceChannelPrivate *c = channel->priv;
+    SpiceChannelPrivate *s = swap->priv;
 
     g_return_if_fail(c != NULL);
     g_return_if_fail(s != NULL);
@@ -2776,7 +2782,7 @@ static void spice_channel_handle_msg(SpiceChannel *channel, SpiceMsgIn *msg)
 
 static void spice_channel_reset_capabilities(SpiceChannel *channel)
 {
-    SpiceChannelPrivate *c = SPICE_CHANNEL_GET_PRIVATE(channel);
+    SpiceChannelPrivate *c = channel->priv;
     g_array_set_size(c->caps, 0);
 
     if (SPICE_CHANNEL_GET_CLASS(channel)->channel_reset_capabilities) {
@@ -2786,7 +2792,7 @@ static void spice_channel_reset_capabilities(SpiceChannel *channel)
 
 static void spice_channel_send_migration_handshake(SpiceChannel *channel)
 {
-    SpiceChannelPrivate *c = SPICE_CHANNEL_GET_PRIVATE(channel);
+    SpiceChannelPrivate *c = channel->priv;
 
     if (SPICE_CHANNEL_GET_CLASS(channel)->channel_send_migration_handshake) {
         SPICE_CHANNEL_GET_CLASS(channel)->channel_send_migration_handshake(channel);
diff --git a/gtk/spice-gstaudio.c b/gtk/spice-gstaudio.c
index 4a80889..faa0c74 100644
--- a/gtk/spice-gstaudio.c
+++ b/gtk/spice-gstaudio.c
@@ -81,9 +81,10 @@ void stream_dispose(struct stream *s)
 
 static void spice_gstaudio_dispose(GObject *obj)
 {
+    SpiceGstaudio *gstaudio = SPICE_GSTAUDIO(obj);
     SpiceGstaudioPrivate *p;
     SPICE_DEBUG("%s", __FUNCTION__);
-    p = SPICE_GSTAUDIO_GET_PRIVATE(obj);
+    p = gstaudio->priv;
 
     stream_dispose(&p->playback);
     stream_dispose(&p->record);
@@ -261,7 +262,7 @@ static void channel_event(SpiceChannel *channel, SpiceChannelEvent event,
 static void playback_stop(SpicePlaybackChannel *channel, gpointer data)
 {
     SpiceGstaudio *gstaudio = data;
-    SpiceGstaudioPrivate *p = SPICE_GSTAUDIO_GET_PRIVATE(gstaudio);
+    SpiceGstaudioPrivate *p = gstaudio->priv;
 
     if (p->playback.pipe)
         gst_element_set_state(p->playback.pipe, GST_STATE_READY);
@@ -274,7 +275,7 @@ static void playback_stop(SpicePlaybackChannel *channel, gpointer data)
 static gboolean update_mmtime_timeout_cb(gpointer data)
 {
     SpiceGstaudio *gstaudio = data;
-    SpiceGstaudioPrivate *p = SPICE_GSTAUDIO_GET_PRIVATE(gstaudio);
+    SpiceGstaudioPrivate *p = gstaudio->priv;
     GstQuery *q;
 
     q = gst_query_new_latency();
@@ -296,7 +297,7 @@ static void playback_start(SpicePlaybackChannel *channel, gint format, gint chan
                            gint frequency, gpointer data)
 {
     SpiceGstaudio *gstaudio = data;
-    SpiceGstaudioPrivate *p = SPICE_GSTAUDIO_GET_PRIVATE(gstaudio);
+    SpiceGstaudioPrivate *p = gstaudio->priv;
 
     g_return_if_fail(p != NULL);
     g_return_if_fail(format == SPICE_AUDIO_FMT_S16);
@@ -349,7 +350,7 @@ static void playback_data(SpicePlaybackChannel *channel,
                           gpointer data)
 {
     SpiceGstaudio *gstaudio = data;
-    SpiceGstaudioPrivate *p = SPICE_GSTAUDIO_GET_PRIVATE(gstaudio);
+    SpiceGstaudioPrivate *p = gstaudio->priv;
     GstBuffer *buf;
 
     g_return_if_fail(p != NULL);
diff --git a/gtk/spice-pulse.c b/gtk/spice-pulse.c
index c4241d0..3bb0351 100644
--- a/gtk/spice-pulse.c
+++ b/gtk/spice-pulse.c
@@ -79,9 +79,10 @@ static gboolean connect_channel(SpiceAudio *audio, SpiceChannel *channel);
 
 static void spice_pulse_finalize(GObject *obj)
 {
+    SpicePulse *pulse = SPICE_PULSE(obj);
     SpicePulsePrivate *p;
 
-    p = SPICE_PULSE_GET_PRIVATE(obj);
+    p = pulse->priv;
 
     if (p->context != NULL)
         pa_context_unref(p->context);
@@ -94,10 +95,11 @@ static void spice_pulse_finalize(GObject *obj)
 
 static void spice_pulse_dispose(GObject *obj)
 {
+    SpicePulse *pulse = SPICE_PULSE(obj);
     SpicePulsePrivate *p;
 
     SPICE_DEBUG("%s", __FUNCTION__);
-    p = SPICE_PULSE_GET_PRIVATE(obj);
+    p = pulse->priv;
 
     if (p->playback.uncork_op)
         pa_operation_unref(p->playback.uncork_op);
@@ -158,7 +160,7 @@ static void pulse_uncork_cb(pa_stream *pastream, int success, void *data)
 
 static void stream_uncork(SpicePulse *pulse, struct stream *s)
 {
-    SpicePulsePrivate *p = SPICE_PULSE_GET_PRIVATE(pulse);
+    SpicePulsePrivate *p = pulse->priv;
     pa_operation *o = NULL;
 
     g_return_if_fail(s->stream);
@@ -217,7 +219,7 @@ static void pulse_cork_cb(pa_stream *pastream, int success, void *data)
 
 static void stream_cork(SpicePulse *pulse, struct stream *s, gboolean with_flush)
 {
-    SpicePulsePrivate *p = SPICE_PULSE_GET_PRIVATE(pulse);
+    SpicePulsePrivate *p = pulse->priv;
     pa_operation *o = NULL;
 
     if (s->uncork_op) {
@@ -240,7 +242,7 @@ static void stream_cork(SpicePulse *pulse, struct stream *s, gboolean with_flush
 
 static void stream_stop(SpicePulse *pulse, struct stream *s)
 {
-    SpicePulsePrivate *p = SPICE_PULSE_GET_PRIVATE(pulse);
+    SpicePulsePrivate *p = pulse->priv;
 
     if (pa_stream_disconnect(s->stream) < 0) {
         g_warning("pa_stream_disconnect() failed: %s",
@@ -252,8 +254,10 @@ static void stream_stop(SpicePulse *pulse, struct stream *s)
 
 static void stream_state_callback(pa_stream *s, void *userdata)
 {
+    SpicePulse *pulse = userdata;
     SpicePulsePrivate *p;
-    p = SPICE_PULSE_GET_PRIVATE(userdata);
+
+    p = pulse->priv;
 
     g_return_if_fail(p != NULL);
     g_return_if_fail(s != NULL);
@@ -271,11 +275,12 @@ static void stream_state_callback(pa_stream *s, void *userdata)
 
 static void stream_underflow_cb(pa_stream *s, void *userdata)
 {
+    SpicePulse *pulse = userdata;
     SpicePulsePrivate *p;
 
     SPICE_DEBUG("PA stream underflow!!");
 
-    p = SPICE_PULSE_GET_PRIVATE(userdata);
+    p = pulse->priv;
     g_return_if_fail(p != NULL);
     p->playback.num_underflow++;
 #ifdef PULSE_ADJUST_LATENCY
@@ -301,7 +306,7 @@ static void stream_update_latency_callback(pa_stream *s, void *userdata)
     int negative = 0;
     SpicePulsePrivate *p;
 
-    p = SPICE_PULSE_GET_PRIVATE(pulse);
+    p = pulse->priv;
 
     g_return_if_fail(s != NULL);
     g_return_if_fail(p != NULL);
@@ -329,7 +334,7 @@ static void stream_update_latency_callback(pa_stream *s, void *userdata)
 
 static void create_playback(SpicePulse *pulse)
 {
-    SpicePulsePrivate *p = SPICE_PULSE_GET_PRIVATE(pulse);
+    SpicePulsePrivate *p = pulse->priv;
     pa_stream_flags_t flags;
     pa_buffer_attr buffer_attr = { 0, };
 
@@ -362,7 +367,7 @@ static void playback_start(SpicePlaybackChannel *channel, gint format, gint chan
                            gint frequency, gpointer data)
 {
     SpicePulse *pulse = data;
-    SpicePulsePrivate *p = SPICE_PULSE_GET_PRIVATE(pulse);
+    SpicePulsePrivate *p = pulse->priv;
     pa_context_state_t state;
     guint latency;
 
@@ -412,7 +417,7 @@ static void playback_data(SpicePlaybackChannel *channel,
                           gpointer data)
 {
     SpicePulse *pulse = data;
-    SpicePulsePrivate *p = SPICE_PULSE_GET_PRIVATE(pulse);
+    SpicePulsePrivate *p = pulse->priv;
     pa_stream_state_t state;
 
     if (!p->playback.stream)
@@ -459,7 +464,7 @@ static void playback_stop(SpicePlaybackChannel *channel, gpointer data)
 static void stream_read_callback(pa_stream *s, size_t length, void *data)
 {
     SpicePulse *pulse = data;
-    SpicePulsePrivate *p = SPICE_PULSE_GET_PRIVATE(pulse);
+    SpicePulsePrivate *p = pulse->priv;
 
     g_return_if_fail(p != NULL);
 
@@ -491,7 +496,7 @@ static void stream_read_callback(pa_stream *s, size_t length, void *data)
 
 static void create_record(SpicePulse *pulse)
 {
-    SpicePulsePrivate *p = SPICE_PULSE_GET_PRIVATE(pulse);
+    SpicePulsePrivate *p = pulse->priv;
     pa_buffer_attr buffer_attr = { 0, };
     pa_stream_flags_t flags;
 
@@ -523,7 +528,7 @@ static void record_start(SpiceRecordChannel *channel, gint format, gint channels
                          gint frequency, gpointer data)
 {
     SpicePulse *pulse = data;
-    SpicePulsePrivate *p = SPICE_PULSE_GET_PRIVATE(pulse);
+    SpicePulsePrivate *p = pulse->priv;
     pa_context_state_t state;
 
     p->record.started = TRUE;
@@ -791,8 +796,10 @@ static gboolean connect_channel(SpiceAudio *audio, SpiceChannel *channel)
 
 static void context_state_callback(pa_context *c, void *userdata)
 {
+    SpicePulse *pulse = userdata;
     SpicePulsePrivate *p;
-    p = SPICE_PULSE_GET_PRIVATE(userdata);
+
+    p = pulse->priv;
 
     g_return_if_fail(p != NULL);
     g_return_if_fail(c != NULL);
@@ -834,7 +841,7 @@ SpicePulse *spice_pulse_new(SpiceSession *session, GMainContext *context,
                          "session", session,
                          "main-context", context,
                          NULL);
-    p = SPICE_PULSE_GET_PRIVATE(pulse);
+    p = pulse->priv;
 
     p->mainloop = pa_glib_mainloop_new(context);
     p->state = PA_CONTEXT_READY;
diff --git a/gtk/spice-session.c b/gtk/spice-session.c
index 6146270..b4675d8 100644
--- a/gtk/spice-session.c
+++ b/gtk/spice-session.c
@@ -222,7 +222,7 @@ static void
 spice_session_finalize(GObject *gobject)
 {
     SpiceSession *session = SPICE_SESSION(gobject);
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     /* release stuff */
     g_free(s->host);
@@ -254,7 +254,7 @@ spice_session_finalize(GObject *gobject)
 
 static int spice_uri_create(SpiceSession *session, char *dest, int len)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
     int pos = 0;
 
     if (s->host == NULL || (s->port == NULL && s->tls_port == NULL)) {
@@ -271,7 +271,7 @@ static int spice_uri_create(SpiceSession *session, char *dest, int len)
 
 static int spice_uri_parse(SpiceSession *session, const char *original_uri)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
     gchar *host = NULL, *port = NULL, *tls_port = NULL, *uri = NULL, *password = NULL;
     gchar *path = NULL;
     gchar *unescaped_path = NULL;
@@ -408,7 +408,7 @@ static void spice_session_get_property(GObject    *gobject,
                                        GParamSpec *pspec)
 {
     SpiceSession *session = SPICE_SESSION(gobject);
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
     char buf[256];
     int len;
 
@@ -513,7 +513,7 @@ static void spice_session_set_property(GObject      *gobject,
                                        GParamSpec   *pspec)
 {
     SpiceSession *session = SPICE_SESSION(gobject);
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
     const char *str;
 
     switch (prop_id) {
@@ -1243,9 +1243,12 @@ SpiceSession *spice_session_new_from_session(SpiceSession *session)
  **/
 gboolean spice_session_connect(SpiceSession *session)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s;
 
-    g_return_val_if_fail(s != NULL, FALSE);
+    g_return_val_if_fail(SPICE_IS_SESSION(session), FALSE);
+    g_return_val_if_fail(session->priv != NULL, FALSE);
+
+    s = session->priv;
 
     spice_session_disconnect(session);
     s->disconnecting = FALSE;
@@ -1275,11 +1278,14 @@ gboolean spice_session_connect(SpiceSession *session)
  **/
 gboolean spice_session_open_fd(SpiceSession *session, int fd)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s;
 
-    g_return_val_if_fail(s != NULL, FALSE);
+    g_return_val_if_fail(SPICE_IS_SESSION(session), FALSE);
+    g_return_val_if_fail(session->priv != NULL, FALSE);
     g_return_val_if_fail(fd >= -1, FALSE);
 
+    s = session->priv;
+
     spice_session_disconnect(session);
     s->disconnecting = FALSE;
 
@@ -1295,7 +1301,7 @@ gboolean spice_session_open_fd(SpiceSession *session, int fd)
 G_GNUC_INTERNAL
 gboolean spice_session_get_client_provided_socket(SpiceSession *session)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_val_if_fail(s != NULL, FALSE);
     return s->client_provided_sockets;
@@ -1303,7 +1309,7 @@ gboolean spice_session_get_client_provided_socket(SpiceSession *session)
 
 static void cache_clear_all(SpiceSession *self)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(self);
+    SpiceSessionPrivate *s = self->priv;
 
     cache_clear(s->images);
     glz_decoder_window_clear(s->glz_window);
@@ -1312,7 +1318,7 @@ static void cache_clear_all(SpiceSession *self)
 G_GNUC_INTERNAL
 void spice_session_switching_disconnect(SpiceSession *self)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(self);
+    SpiceSessionPrivate *s = self->priv;
     struct channel *item;
     RingItem *ring, *next;
 
@@ -1338,8 +1344,8 @@ void spice_session_set_migration(SpiceSession *session,
                                  SpiceSession *migration,
                                  gboolean full_migration)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
-    SpiceSessionPrivate *m = SPICE_SESSION_GET_PRIVATE(migration);
+    SpiceSessionPrivate *s = session->priv;
+    SpiceSessionPrivate *m = migration->priv;
     gchar *tmp;
 
     g_return_if_fail(s != NULL);
@@ -1399,7 +1405,7 @@ SpiceChannel* spice_session_lookup_channel(SpiceSession *session, gint id, gint
 G_GNUC_INTERNAL
 void spice_session_abort_migration(SpiceSession *session)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
     RingItem *ring, *next;
     struct channel *c;
 
@@ -1437,7 +1443,7 @@ void spice_session_abort_migration(SpiceSession *session)
 G_GNUC_INTERNAL
 void spice_session_channel_migrate(SpiceSession *session, SpiceChannel *channel)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
     SpiceChannel *c;
     gint id, type;
 
@@ -1567,11 +1573,14 @@ gboolean spice_session_get_read_only(SpiceSession *self)
  **/
 void spice_session_disconnect(SpiceSession *session)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s;
     struct channel *item;
     RingItem *ring, *next;
 
-    g_return_if_fail(s != NULL);
+    g_return_if_fail(SPICE_IS_SESSION(session));
+    g_return_if_fail(session->priv != NULL);
+
+    s = session->priv;
 
     SPICE_DEBUG("session: disconnecting %d", s->disconnecting);
     if (s->disconnecting)
@@ -1608,12 +1617,15 @@ void spice_session_disconnect(SpiceSession *session)
  **/
 GList *spice_session_get_channels(SpiceSession *session)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s;
     struct channel *item;
     GList *list = NULL;
     RingItem *ring;
 
-    g_return_val_if_fail(s != NULL, NULL);
+    g_return_val_if_fail(SPICE_IS_SESSION(session), NULL);
+    g_return_val_if_fail(session->priv != NULL, NULL);
+
+    s = session->priv;
 
     for (ring = ring_get_head(&s->channels);
          ring != NULL;
@@ -1635,11 +1647,14 @@ GList *spice_session_get_channels(SpiceSession *session)
  **/
 gboolean spice_session_has_channel_type(SpiceSession *session, gint type)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s;
     struct channel *item;
     RingItem *ring;
 
-    g_return_val_if_fail(s != NULL, FALSE);
+    g_return_val_if_fail(SPICE_IS_SESSION(session), FALSE);
+    g_return_val_if_fail(session->priv != NULL, FALSE);
+
+    s = session->priv;
 
     for (ring = ring_get_head(&s->channels);
          ring != NULL;
@@ -1706,7 +1721,8 @@ static void proxy_lookup_ready(GObject *source_object, GAsyncResult *result,
                                gpointer data)
 {
     spice_open_host *open_host = data;
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(open_host->session);
+    SpiceSession *session = open_host->session;
+    SpiceSessionPrivate *s = session->priv;
     GList *addresses = NULL, *it;
     GSocketAddress *address;
 
@@ -1735,7 +1751,8 @@ static void proxy_lookup_ready(GObject *source_object, GAsyncResult *result,
 static gboolean open_host_idle_cb(gpointer data)
 {
     spice_open_host *open_host = data;
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(open_host->session);
+    SpiceSession *session = open_host->session;
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_val_if_fail(open_host != NULL, FALSE);
     g_return_val_if_fail(open_host->connection == NULL, FALSE);
@@ -1791,7 +1808,7 @@ G_GNUC_INTERNAL
 GSocketConnection* spice_session_channel_open_host(SpiceSession *session, SpiceChannel *channel,
                                                    gboolean *use_tls)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
     SpiceChannelPrivate *c = channel->priv;
     spice_open_host open_host = { 0, };
     gchar *port, *endptr;
@@ -1858,7 +1875,7 @@ GSocketConnection* spice_session_channel_open_host(SpiceSession *session, SpiceC
 G_GNUC_INTERNAL
 void spice_session_channel_new(SpiceSession *session, SpiceChannel *channel)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
     struct channel *item;
 
     g_return_if_fail(s != NULL);
@@ -1892,7 +1909,7 @@ void spice_session_channel_new(SpiceSession *session, SpiceChannel *channel)
 G_GNUC_INTERNAL
 void spice_session_channel_destroy(SpiceSession *session, SpiceChannel *channel)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
     struct channel *item = NULL;
     RingItem *ring;
 
@@ -1925,7 +1942,7 @@ void spice_session_channel_destroy(SpiceSession *session, SpiceChannel *channel)
 G_GNUC_INTERNAL
 void spice_session_set_connection_id(SpiceSession *session, int id)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_if_fail(s != NULL);
 
@@ -1935,7 +1952,7 @@ void spice_session_set_connection_id(SpiceSession *session, int id)
 G_GNUC_INTERNAL
 int spice_session_get_connection_id(SpiceSession *session)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_val_if_fail(s != NULL, -1);
 
@@ -1945,7 +1962,7 @@ int spice_session_get_connection_id(SpiceSession *session)
 G_GNUC_INTERNAL
 guint32 spice_session_get_mm_time(SpiceSession *session)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_val_if_fail(s != NULL, 0);
 
@@ -1959,7 +1976,7 @@ guint32 spice_session_get_mm_time(SpiceSession *session)
 G_GNUC_INTERNAL
 void spice_session_set_mm_time(SpiceSession *session, guint32 time)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
     guint32 old_time;
 
     g_return_if_fail(s != NULL);
@@ -1993,7 +2010,7 @@ void spice_session_set_port(SpiceSession *session, int port, gboolean tls)
 G_GNUC_INTERNAL
 void spice_session_get_pubkey(SpiceSession *session, guint8 **pubkey, guint *size)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_if_fail(s != NULL);
     g_return_if_fail(pubkey != NULL);
@@ -2006,7 +2023,7 @@ void spice_session_get_pubkey(SpiceSession *session, guint8 **pubkey, guint *siz
 G_GNUC_INTERNAL
 void spice_session_get_ca(SpiceSession *session, guint8 **ca, guint *size)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_if_fail(s != NULL);
     g_return_if_fail(ca != NULL);
@@ -2019,7 +2036,7 @@ void spice_session_get_ca(SpiceSession *session, guint8 **ca, guint *size)
 G_GNUC_INTERNAL
 guint spice_session_get_verify(SpiceSession *session)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_val_if_fail(s != NULL, 0);
     return s->verify;
@@ -2028,7 +2045,7 @@ guint spice_session_get_verify(SpiceSession *session)
 G_GNUC_INTERNAL
 void spice_session_set_migration_state(SpiceSession *session, SpiceSessionMigration state)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_if_fail(s != NULL);
     s->migration_state = state;
@@ -2038,7 +2055,7 @@ void spice_session_set_migration_state(SpiceSession *session, SpiceSessionMigrat
 G_GNUC_INTERNAL
 const gchar* spice_session_get_password(SpiceSession *session)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_val_if_fail(s != NULL, NULL);
     return s->password;
@@ -2047,7 +2064,7 @@ const gchar* spice_session_get_password(SpiceSession *session)
 G_GNUC_INTERNAL
 const gchar* spice_session_get_host(SpiceSession *session)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_val_if_fail(s != NULL, NULL);
     return s->host;
@@ -2056,7 +2073,7 @@ const gchar* spice_session_get_host(SpiceSession *session)
 G_GNUC_INTERNAL
 const gchar* spice_session_get_cert_subject(SpiceSession *session)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_val_if_fail(s != NULL, NULL);
     return s->cert_subject;
@@ -2065,7 +2082,7 @@ const gchar* spice_session_get_cert_subject(SpiceSession *session)
 G_GNUC_INTERNAL
 const gchar* spice_session_get_ciphers(SpiceSession *session)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_val_if_fail(s != NULL, NULL);
     return s->ciphers;
@@ -2074,7 +2091,7 @@ const gchar* spice_session_get_ciphers(SpiceSession *session)
 G_GNUC_INTERNAL
 const gchar* spice_session_get_ca_file(SpiceSession *session)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_val_if_fail(s != NULL, NULL);
     return s->ca_file;
@@ -2085,7 +2102,7 @@ void spice_session_get_caches(SpiceSession *session,
                               display_cache **images,
                               SpiceGlzDecoderWindow **glz_window)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_if_fail(s != NULL);
 
@@ -2100,7 +2117,7 @@ void spice_session_set_caches_hints(SpiceSession *session,
                                     uint32_t pci_ram_size,
                                     uint32_t display_channels_count)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_if_fail(s != NULL);
 
@@ -2122,7 +2139,7 @@ void spice_session_set_caches_hints(SpiceSession *session,
 G_GNUC_INTERNAL
 void spice_session_set_uuid(SpiceSession *session, guint8 uuid[16])
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_if_fail(s != NULL);
     memcpy(s->uuid, uuid, sizeof(s->uuid));
@@ -2133,7 +2150,7 @@ void spice_session_set_uuid(SpiceSession *session, guint8 uuid[16])
 G_GNUC_INTERNAL
 void spice_session_set_name(SpiceSession *session, const gchar *name)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_if_fail(s != NULL);
     g_free(s->name);
@@ -2145,7 +2162,7 @@ void spice_session_set_name(SpiceSession *session, const gchar *name)
 G_GNUC_INTERNAL
 void spice_session_sync_playback_latency(SpiceSession *session)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_if_fail(s != NULL);
 
@@ -2160,7 +2177,7 @@ void spice_session_sync_playback_latency(SpiceSession *session)
 G_GNUC_INTERNAL
 gboolean spice_session_is_playback_active(SpiceSession *session)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_val_if_fail(s != NULL, FALSE);
 
@@ -2171,7 +2188,7 @@ gboolean spice_session_is_playback_active(SpiceSession *session)
 G_GNUC_INTERNAL
 guint32 spice_session_get_playback_latency(SpiceSession *session)
 {
-    SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session);
+    SpiceSessionPrivate *s = session->priv;
 
     g_return_val_if_fail(s != NULL, 0);
 
diff --git a/gtk/spice-widget-cairo.c b/gtk/spice-widget-cairo.c
index e0fe1ed..3bbfaa9 100644
--- a/gtk/spice-widget-cairo.c
+++ b/gtk/spice-widget-cairo.c
@@ -35,7 +35,7 @@ static inline void gdk_drawable_get_size(GdkWindow *w, gint *ww, gint *wh)
 G_GNUC_INTERNAL
 int spicex_image_create(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     if (d->ximage != NULL)
         return 0;
@@ -61,7 +61,7 @@ int spicex_image_create(SpiceDisplay *display)
 G_GNUC_INTERNAL
 void spicex_image_destroy(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     if (d->ximage) {
         cairo_surface_destroy(d->ximage);
@@ -85,7 +85,7 @@ void spicex_image_destroy(SpiceDisplay *display)
 G_GNUC_INTERNAL
 void spicex_draw_event(SpiceDisplay *display, cairo_t *cr)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     cairo_rectangle_int_t rect;
     cairo_region_t *region;
     double s;
@@ -171,6 +171,7 @@ void spicex_expose_event(SpiceDisplay *display, GdkEventExpose *expose)
 G_GNUC_INTERNAL
 gboolean spicex_is_scaled(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
+
     return d->allow_scaling;
 }
diff --git a/gtk/spice-widget-x11.c b/gtk/spice-widget-x11.c
index 05b8d56..cc08eb2 100644
--- a/gtk/spice-widget-x11.c
+++ b/gtk/spice-widget-x11.c
@@ -121,7 +121,7 @@ static int catch_no_mitshm(Display * dpy, XErrorEvent * event)
 G_GNUC_INTERNAL
 int spicex_image_create(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate   *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate   *d = display->priv;
 
     if (d->ximage != NULL)
         return 0;
@@ -191,7 +191,7 @@ int spicex_image_create(SpiceDisplay *display)
 G_GNUC_INTERNAL
 void spicex_image_destroy(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     if (d->ximage) {
         /* avoid XDestroy to free shared memory, owned and freed by
@@ -222,7 +222,7 @@ G_GNUC_INTERNAL
 void spicex_expose_event(SpiceDisplay *display, GdkEventExpose *expose)
 {
     GdkDrawable *window = gtk_widget_get_window(GTK_WIDGET(display));
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     int x, y, w, h;
 
     spice_display_get_scaling(display, NULL, &x, &y, &w, &h);
diff --git a/gtk/spice-widget.c b/gtk/spice-widget.c
index 7019b03..ecfe46d 100644
--- a/gtk/spice-widget.c
+++ b/gtk/spice-widget.c
@@ -146,7 +146,7 @@ static void spice_display_get_property(GObject    *object,
                                        GParamSpec *pspec)
 {
     SpiceDisplay *display = SPICE_DISPLAY(object);
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     gboolean boolean;
 
     switch (prop_id) {
@@ -198,7 +198,7 @@ static void spice_display_get_property(GObject    *object,
 
 static void scaling_updated(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     GdkWindow *window = gtk_widget_get_window(GTK_WIDGET(display));
 
     recalc_geometry(GTK_WIDGET(display));
@@ -209,7 +209,7 @@ static void scaling_updated(SpiceDisplay *display)
 
 static void update_size_request(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     gint reqwidth, reqheight;
 
     if (d->resize_guest_enable) {
@@ -226,7 +226,7 @@ static void update_size_request(SpiceDisplay *display)
 
 static void update_keyboard_focus(SpiceDisplay *display, gboolean state)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     d->keyboard_have_focus = state;
 
@@ -242,7 +242,7 @@ static void update_keyboard_focus(SpiceDisplay *display, gboolean state)
 
 static void update_ready(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     gboolean ready;
 
     ready = d->mark != 0 && d->monitor_ready;
@@ -267,7 +267,7 @@ static void set_monitor_ready(SpiceDisplay *self, gboolean ready)
 
 static gint get_display_id(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     /* supported monitor_id only with display channel #0 */
     if (d->channel_id == 0 && d->monitor_id >= 0)
@@ -280,7 +280,7 @@ static gint get_display_id(SpiceDisplay *display)
 
 static void update_monitor_area(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     SpiceDisplayMonitorConfig *cfg, *c = NULL;
     GArray *monitors = NULL;
     int i;
@@ -335,7 +335,7 @@ static void spice_display_set_property(GObject      *object,
                                        GParamSpec   *pspec)
 {
     SpiceDisplay *display = SPICE_DISPLAY(object);
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     switch (prop_id) {
     case PROP_SESSION:
@@ -408,7 +408,7 @@ static void session_inhibit_keyboard_grab_changed(GObject    *gobject,
                                                   gpointer    user_data)
 {
     SpiceDisplay *display = user_data;
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     g_object_get(d->session, "inhibit-keyboard-grab",
                  &d->keyboard_grab_inhibit, NULL);
@@ -419,7 +419,7 @@ static void session_inhibit_keyboard_grab_changed(GObject    *gobject,
 static void spice_display_dispose(GObject *obj)
 {
     SpiceDisplay *display = SPICE_DISPLAY(obj);
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     SPICE_DEBUG("spice display dispose");
 
@@ -438,7 +438,7 @@ static void spice_display_dispose(GObject *obj)
 static void spice_display_finalize(GObject *obj)
 {
     SpiceDisplay *display = SPICE_DISPLAY(obj);
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     SPICE_DEBUG("Finalize spice display");
 
@@ -506,7 +506,7 @@ static void drag_data_received_callback(SpiceDisplay *self,
     const guchar *buf;
     gchar **file_urls;
     int n_files;
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(self);
+    SpiceDisplayPrivate *d = self->priv;
     int i = 0;
     GFile **files;
 
@@ -601,7 +601,7 @@ spice_display_constructor(GType                  gtype,
     }
 
     display = SPICE_DISPLAY(obj);
-    d = SPICE_DISPLAY_GET_PRIVATE(display);
+    d = display->priv;
 
     if (!d->session)
         g_error("SpiceDisplay constructed without a session");
@@ -719,7 +719,7 @@ SpiceGrabSequence *spice_display_get_grab_keys(SpiceDisplay *display)
 static void try_keyboard_grab(SpiceDisplay *display)
 {
     GtkWidget *widget = GTK_WIDGET(display);
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     GdkGrabStatus status;
 
     if (g_getenv("SPICE_NOGRAB"))
@@ -762,7 +762,7 @@ static void try_keyboard_grab(SpiceDisplay *display)
 
 static void try_keyboard_ungrab(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     GtkWidget *widget = GTK_WIDGET(display);
 
     if (!d->keyboard_grab_active)
@@ -782,7 +782,7 @@ static void try_keyboard_ungrab(SpiceDisplay *display)
 
 static void update_keyboard_grab(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     if (d->keyboard_grab_enable &&
         !d->keyboard_grab_inhibit &&
@@ -794,7 +794,7 @@ static void update_keyboard_grab(SpiceDisplay *display)
 
 static void set_mouse_accel(SpiceDisplay *display, gboolean enabled)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
 #if defined GDK_WINDOWING_X11
     GdkWindow *w = GDK_WINDOW(gtk_widget_get_window(GTK_WIDGET(display)));
@@ -879,7 +879,7 @@ error:
 
 static GdkGrabStatus do_pointer_grab(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     GdkWindow *window = GDK_WINDOW(gtk_widget_get_window(GTK_WIDGET(display)));
     GdkGrabStatus status = GDK_GRAB_BROKEN;
     GdkCursor *blank = get_blank_cursor();
@@ -929,7 +929,7 @@ end:
 
 static void update_mouse_pointer(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     GdkWindow *window = GDK_WINDOW(gtk_widget_get_window(GTK_WIDGET(display)));
 
     if (!window)
@@ -952,7 +952,7 @@ static void update_mouse_pointer(SpiceDisplay *display)
 
 static void try_mouse_grab(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     if (g_getenv("SPICE_NOGRAB"))
         return;
@@ -980,7 +980,7 @@ static void try_mouse_grab(SpiceDisplay *display)
 
 static void mouse_wrap(SpiceDisplay *display, GdkEventMotion *motion)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     gint xr, yr;
 
 #ifdef WIN32
@@ -1012,7 +1012,7 @@ static void mouse_wrap(SpiceDisplay *display, GdkEventMotion *motion)
 
 static void try_mouse_ungrab(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     if (!d->mouse_grab_active)
         return;
@@ -1031,7 +1031,7 @@ static void try_mouse_ungrab(SpiceDisplay *display)
 
 static void update_mouse_grab(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     if (d->mouse_grab_enable &&
         !d->keyboard_grab_inhibit &&
@@ -1044,7 +1044,7 @@ static void update_mouse_grab(SpiceDisplay *display)
 static void recalc_geometry(GtkWidget *widget)
 {
     SpiceDisplay *display = SPICE_DISPLAY(widget);
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     gdouble zoom = 1.0;
 
     if (spicex_is_scaled(display))
@@ -1077,7 +1077,7 @@ static void recalc_geometry(GtkWidget *widget)
 
 static gboolean do_color_convert(SpiceDisplay *display, GdkRectangle *r)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     guint32 *dest = d->data;
     guint16 *src = d->data_origin;
     gint x, y;
@@ -1117,7 +1117,7 @@ static gboolean do_color_convert(SpiceDisplay *display, GdkRectangle *r)
 static gboolean draw_event(GtkWidget *widget, cairo_t *cr)
 {
     SpiceDisplay *display = SPICE_DISPLAY(widget);
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     g_return_val_if_fail(d != NULL, false);
 
     if (d->mark == 0 || d->data == NULL ||
@@ -1134,7 +1134,7 @@ static gboolean draw_event(GtkWidget *widget, cairo_t *cr)
 static gboolean expose_event(GtkWidget *widget, GdkEventExpose *expose)
 {
     SpiceDisplay *display = SPICE_DISPLAY(widget);
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     g_return_val_if_fail(d != NULL, false);
 
     if (d->mark == 0 || d->data == NULL ||
@@ -1157,7 +1157,7 @@ typedef enum {
 
 static void key_press_and_release(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     if (d->key_delayed_scancode == 0)
         return;
@@ -1173,7 +1173,8 @@ static void key_press_and_release(SpiceDisplay *display)
 
 static gboolean key_press_delayed(gpointer data)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(data);
+    SpiceDisplay *display = data;
+    SpiceDisplayPrivate *d = display->priv;
 
     if (d->key_delayed_scancode == 0)
         return FALSE;
@@ -1191,7 +1192,7 @@ static gboolean key_press_delayed(gpointer data)
 
 static void send_key(SpiceDisplay *display, int scancode, SendKeyType type, gboolean press_delayed)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     uint32_t i, b, m;
 
     g_return_if_fail(scancode != 0);
@@ -1246,7 +1247,7 @@ static void send_key(SpiceDisplay *display, int scancode, SendKeyType type, gboo
 
 static void release_keys(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     uint32_t i, b;
 
     SPICE_DEBUG("%s", __FUNCTION__);
@@ -1265,7 +1266,7 @@ static void release_keys(SpiceDisplay *display)
 
 static gboolean check_for_grab_key(SpiceDisplay *display, int type, int keyval)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     int i;
 
     if (!d->grabseq->nkeysyms)
@@ -1305,7 +1306,7 @@ static void update_display(SpiceDisplay *display)
 static gboolean key_event(GtkWidget *widget, GdkEventKey *key)
 {
     SpiceDisplay *display = SPICE_DISPLAY(widget);
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     int scancode;
 
 #ifdef WIN32
@@ -1364,7 +1365,7 @@ static gboolean key_event(GtkWidget *widget, GdkEventKey *key)
 
 static guint get_scancode_from_keyval(SpiceDisplay *display, guint keyval)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     guint keycode = 0;
     GdkKeymapKey *keys = NULL;
     gint n_keys = 0;
@@ -1417,7 +1418,7 @@ void spice_display_send_keys(SpiceDisplay *display, const guint *keyvals,
 static gboolean enter_event(GtkWidget *widget, GdkEventCrossing *crossing G_GNUC_UNUSED)
 {
     SpiceDisplay *display = SPICE_DISPLAY(widget);
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     SPICE_DEBUG("%s", __FUNCTION__);
 
@@ -1431,7 +1432,7 @@ static gboolean enter_event(GtkWidget *widget, GdkEventCrossing *crossing G_GNUC
 static gboolean leave_event(GtkWidget *widget, GdkEventCrossing *crossing G_GNUC_UNUSED)
 {
     SpiceDisplay *display = SPICE_DISPLAY(widget);
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     SPICE_DEBUG("%s", __FUNCTION__);
 
@@ -1447,7 +1448,7 @@ static gboolean leave_event(GtkWidget *widget, GdkEventCrossing *crossing G_GNUC
 static gboolean focus_in_event(GtkWidget *widget, GdkEventFocus *focus G_GNUC_UNUSED)
 {
     SpiceDisplay *display = SPICE_DISPLAY(widget);
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     SPICE_DEBUG("%s", __FUNCTION__);
 
@@ -1470,7 +1471,7 @@ static gboolean focus_in_event(GtkWidget *widget, GdkEventFocus *focus G_GNUC_UN
 static gboolean focus_out_event(GtkWidget *widget, GdkEventFocus *focus G_GNUC_UNUSED)
 {
     SpiceDisplay *display = SPICE_DISPLAY(widget);
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     SPICE_DEBUG("%s", __FUNCTION__);
     update_display(NULL);
@@ -1557,7 +1558,7 @@ void spicex_transform_input (SpiceDisplay *display,
 static gboolean motion_event(GtkWidget *widget, GdkEventMotion *motion)
 {
     SpiceDisplay *display = SPICE_DISPLAY(widget);
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     int x, y;
 
     if (!d->inputs)
@@ -1600,7 +1601,7 @@ static gboolean scroll_event(GtkWidget *widget, GdkEventScroll *scroll)
 {
     int button;
     SpiceDisplay *display = SPICE_DISPLAY(widget);
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     SPICE_DEBUG("%s", __FUNCTION__);
 
@@ -1628,7 +1629,7 @@ static gboolean scroll_event(GtkWidget *widget, GdkEventScroll *scroll)
 static gboolean button_event(GtkWidget *widget, GdkEventButton *button)
 {
     SpiceDisplay *display = SPICE_DISPLAY(widget);
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     int x, y;
 
     SPICE_DEBUG("%s %s: button %d, state 0x%x", __FUNCTION__,
@@ -1690,7 +1691,7 @@ static gboolean button_event(GtkWidget *widget, GdkEventButton *button)
 static gboolean configure_event(GtkWidget *widget, GdkEventConfigure *conf)
 {
     SpiceDisplay *display = SPICE_DISPLAY(widget);
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     if (conf->width == d->ww && conf->height == d->wh &&
             conf->x == d->mx && conf->y == d->my) {
@@ -1718,7 +1719,7 @@ static gboolean configure_event(GtkWidget *widget, GdkEventConfigure *conf)
 
 static void update_image(SpiceDisplay *display)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     spicex_image_create(display);
     if (d->convert)
@@ -2038,7 +2039,7 @@ static void spice_display_class_init(SpiceDisplayClass *klass)
 static void update_mouse_mode(SpiceChannel *channel, gpointer data)
 {
     SpiceDisplay *display = data;
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     GdkWindow *window = gtk_widget_get_window(GTK_WIDGET(display));
 
     g_object_get(channel, "mouse-mode", &d->mouse_mode, NULL);
@@ -2070,7 +2071,7 @@ static void update_mouse_mode(SpiceChannel *channel, gpointer data)
 static void update_area(SpiceDisplay *display,
                         gint x, gint y, gint width, gint height)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     GdkRectangle primary = {
         .x = 0,
         .y = 0,
@@ -2108,7 +2109,7 @@ static void primary_create(SpiceChannel *channel, gint format,
                            gint shmid, gpointer imgdata, gpointer data)
 {
     SpiceDisplay *display = data;
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     d->format = format;
     d->stride = stride;
@@ -2123,7 +2124,7 @@ static void primary_create(SpiceChannel *channel, gint format,
 static void primary_destroy(SpiceChannel *channel, gpointer data)
 {
     SpiceDisplay *display = SPICE_DISPLAY(data);
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     spicex_image_destroy(display);
     d->width  = 0;
@@ -2139,7 +2140,7 @@ static void invalidate(SpiceChannel *channel,
                        gint x, gint y, gint w, gint h, gpointer data)
 {
     SpiceDisplay *display = data;
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     int display_x, display_y;
     int x1, y1, x2, y2;
     double s;
@@ -2175,7 +2176,7 @@ static void invalidate(SpiceChannel *channel,
 
 static void mark(SpiceDisplay *display, gint mark)
 {
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     g_return_if_fail(d != NULL);
 
     SPICE_DEBUG("widget mark: %d, %d:%d %p", mark, d->channel_id, d->monitor_id, display);
@@ -2188,7 +2189,7 @@ static void cursor_set(SpiceCursorChannel *channel,
                        gpointer rgba, gpointer data)
 {
     SpiceDisplay *display = data;
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     GdkCursor *cursor = NULL;
 
     cursor_invalidate(display);
@@ -2234,7 +2235,7 @@ static void cursor_set(SpiceCursorChannel *channel,
 static void cursor_hide(SpiceCursorChannel *channel, gpointer data)
 {
     SpiceDisplay *display = data;
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
 
     if (d->show_cursor != NULL) /* then we are already hidden */
         return;
@@ -2357,7 +2358,7 @@ static void cursor_reset(SpiceCursorChannel *channel, gpointer data)
 static void channel_new(SpiceSession *s, SpiceChannel *channel, gpointer data)
 {
     SpiceDisplay *display = data;
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     int id;
 
     g_object_get(channel, "channel-id", &id, NULL);
@@ -2431,7 +2432,7 @@ static void channel_new(SpiceSession *s, SpiceChannel *channel, gpointer data)
 static void channel_destroy(SpiceSession *s, SpiceChannel *channel, gpointer data)
 {
     SpiceDisplay *display = data;
-    SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display);
+    SpiceDisplayPrivate *d = display->priv;
     int id;
 
     g_object_get(channel, "channel-id", &id, NULL);
-- 
1.9.3