[Spice-devel] [PATCH spice-server 2/2] fixup! Manage lifetime of RedVmcChannel

Frediano Ziglio fziglio at redhat.com
Tue Nov 1 16:44:16 UTC 2016


Avoid to use RedCharDeviceSpiceVmcPrivate as already private inside
C file.
Use proper type for RedCharDeviceSpiceVmc::channel.

Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 server/spicevmc.c | 22 ++++++----------------
 1 file changed, 6 insertions(+), 16 deletions(-)

diff --git a/server/spicevmc.c b/server/spicevmc.c
index 8b5acf5..a77e868 100644
--- a/server/spicevmc.c
+++ b/server/spicevmc.c
@@ -47,6 +47,9 @@
 #define BUF_SIZE (64 * 1024 + 32)
 #define COMPRESS_THRESHOLD 1000
 
+typedef struct RedVmcChannel RedVmcChannel;
+typedef struct RedVmcChannelClass RedVmcChannelClass;
+
 typedef struct RedVmcPipeItem {
     RedPipeItem base;
 
@@ -71,12 +74,11 @@ typedef struct RedVmcPipeItem {
     (G_TYPE_INSTANCE_GET_CLASS((obj), RED_TYPE_CHAR_DEVICE_SPICEVMC, RedCharDeviceSpiceVmcClass))
 
 typedef struct RedCharDeviceSpiceVmc RedCharDeviceSpiceVmc;
-typedef struct RedCharDeviceSpiceVmcPrivate RedCharDeviceSpiceVmcPrivate;
 typedef struct RedCharDeviceSpiceVmcClass RedCharDeviceSpiceVmcClass;
 
 struct RedCharDeviceSpiceVmc {
     RedCharDevice parent;
-    RedCharDeviceSpiceVmcPrivate *priv;
+    RedVmcChannel *channel;
 };
 
 struct RedCharDeviceSpiceVmcClass
@@ -84,10 +86,6 @@ struct RedCharDeviceSpiceVmcClass
     RedCharDeviceClass parent_class;
 };
 
-struct RedCharDeviceSpiceVmcPrivate {
-    RedChannel *channel;
-};
-
 static GType red_char_device_spicevmc_get_type(void) G_GNUC_CONST;
 static RedCharDevice *red_char_device_spicevmc_new(SpiceCharDeviceInstance *sin,
                                                    RedsState *reds,
@@ -95,9 +93,6 @@ static RedCharDevice *red_char_device_spicevmc_new(SpiceCharDeviceInstance *sin,
 
 G_DEFINE_TYPE(RedCharDeviceSpiceVmc, red_char_device_spicevmc, RED_TYPE_CHAR_DEVICE)
 
-#define RED_CHAR_DEVICE_SPICEVMC_PRIVATE(o) \
-    (G_TYPE_INSTANCE_GET_PRIVATE ((o), RED_TYPE_CHAR_DEVICE_SPICEVMC, RedCharDeviceSpiceVmcPrivate))
-
 #define RED_TYPE_VMC_CHANNEL red_vmc_channel_get_type()
 
 #define RED_VMC_CHANNEL(obj) \
@@ -109,9 +104,6 @@ G_DEFINE_TYPE(RedCharDeviceSpiceVmc, red_char_device_spicevmc, RED_TYPE_CHAR_DEV
 #define RED_VMC_CHANNEL_GET_CLASS(obj) \
     (G_TYPE_INSTANCE_GET_CLASS((obj), RED_TYPE_VMC_CHANNEL, RedVmcChannelClass))
 
-typedef struct RedVmcChannel RedVmcChannel;
-typedef struct RedVmcChannelClass RedVmcChannelClass;
-
 struct RedVmcChannel
 {
     RedChannel parent;
@@ -865,7 +857,7 @@ RedCharDevice *spicevmc_device_connect(RedsState *reds,
     RedVmcChannel *state = red_vmc_channel_new(reds, channel_type, sin);
 
     dev_state = RED_CHAR_DEVICE_SPICEVMC(state->chardev);
-    dev_state->priv->channel = RED_CHANNEL(state);
+    dev_state->channel = state;
 
     return RED_CHAR_DEVICE(dev_state);
 }
@@ -918,7 +910,7 @@ red_char_device_spicevmc_dispose(GObject *object)
 {
     RedCharDeviceSpiceVmc *self = RED_CHAR_DEVICE_SPICEVMC(object);
 
-    g_clear_object(&self->priv->channel);
+    g_clear_object(&self->channel);
 }
 
 static void
@@ -927,8 +919,6 @@ red_char_device_spicevmc_class_init(RedCharDeviceSpiceVmcClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS(klass);
     RedCharDeviceClass *char_dev_class = RED_CHAR_DEVICE_CLASS(klass);
 
-    g_type_class_add_private(klass, sizeof (RedCharDeviceSpiceVmcPrivate));
-
     object_class->dispose = red_char_device_spicevmc_dispose;
 
     char_dev_class->read_one_msg_from_device = spicevmc_chardev_read_msg_from_dev;
-- 
2.7.4



More information about the Spice-devel mailing list