[PATCH spice-server v2] Use "base" as pipe item base field name

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Most of pipe items use this name for the base field.
This also allows to use SPICE_UPCAST macros instead of a long
SPICE_CONTAINEROF.

Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx>
---
 server/dcc-send.c                | 21 ++++++++-------------
 server/dcc.c                     | 29 ++++++++++++++---------------
 server/dcc.h                     |  4 ++--
 server/display-channel-private.h |  4 ++--
 server/display-channel.c         |  4 ++--
 server/video-stream.c            |  6 +++---
 server/video-stream.h            |  2 +-
 7 files changed, 32 insertions(+), 38 deletions(-)

Changes since v1:
- update more fields.

diff --git a/server/dcc-send.c b/server/dcc-send.c
index 211c69d7..79c3d48b 100644
--- a/server/dcc-send.c
+++ b/server/dcc-send.c
@@ -638,7 +638,7 @@ static bool pipe_rendered_drawables_intersect_with_areas(DisplayChannelClient *d
 
         if (pipe_item->type != RED_PIPE_ITEM_TYPE_DRAW)
             continue;
-        drawable = SPICE_CONTAINEROF(pipe_item, RedDrawablePipeItem, dpi_pipe_item)->drawable;
+        drawable = SPICE_UPCAST(RedDrawablePipeItem, pipe_item)->drawable;
 
         if (ring_item_is_linked(&drawable->list_link))
             continue; // item hasn't been rendered
@@ -731,7 +731,7 @@ static void red_pipe_replace_rendered_drawables_with_images(DisplayChannelClient
 
         if (pipe_item->type != RED_PIPE_ITEM_TYPE_DRAW)
             continue;
-        dpi = SPICE_CONTAINEROF(pipe_item, RedDrawablePipeItem, dpi_pipe_item);
+        dpi = SPICE_UPCAST(RedDrawablePipeItem, pipe_item);
         drawable = dpi->drawable;
         if (ring_item_is_linked(&drawable->list_link))
             continue; // item hasn't been rendered
@@ -2392,7 +2392,7 @@ void dcc_send_item(RedChannelClient *rcc, RedPipeItem *pipe_item)
     reset_send_data(dcc);
     switch (pipe_item->type) {
     case RED_PIPE_ITEM_TYPE_DRAW: {
-        RedDrawablePipeItem *dpi = SPICE_CONTAINEROF(pipe_item, RedDrawablePipeItem, dpi_pipe_item);
+        RedDrawablePipeItem *dpi = SPICE_UPCAST(RedDrawablePipeItem, pipe_item);
         marshall_qxl_drawable(rcc, m, dpi);
         break;
     }
@@ -2432,28 +2432,23 @@ void dcc_send_item(RedChannelClient *rcc, RedPipeItem *pipe_item)
         red_channel_client_init_send_data(rcc, SPICE_MSG_DISPLAY_INVAL_ALL_PALETTES);
         break;
     case RED_PIPE_ITEM_TYPE_CREATE_SURFACE: {
-        RedSurfaceCreateItem *surface_create = SPICE_CONTAINEROF(pipe_item, RedSurfaceCreateItem,
-                                                                 pipe_item);
+        RedSurfaceCreateItem *surface_create = SPICE_UPCAST(RedSurfaceCreateItem, pipe_item);
         marshall_surface_create(rcc, m, &surface_create->surface_create);
         break;
     }
     case RED_PIPE_ITEM_TYPE_DESTROY_SURFACE: {
-        RedSurfaceDestroyItem *surface_destroy = SPICE_CONTAINEROF(pipe_item, RedSurfaceDestroyItem,
-                                                                   pipe_item);
+        RedSurfaceDestroyItem *surface_destroy = SPICE_UPCAST(RedSurfaceDestroyItem, pipe_item);
         marshall_surface_destroy(rcc, m, surface_destroy->surface_destroy.surface_id);
         break;
     }
     case RED_PIPE_ITEM_TYPE_MONITORS_CONFIG: {
-        RedMonitorsConfigItem *monconf_item = SPICE_CONTAINEROF(pipe_item,
-                                                                RedMonitorsConfigItem,
-                                                                pipe_item);
+        RedMonitorsConfigItem *monconf_item = SPICE_UPCAST(RedMonitorsConfigItem, pipe_item);
         marshall_monitors_config(rcc, m, monconf_item->monitors_config);
         break;
     }
     case RED_PIPE_ITEM_TYPE_STREAM_ACTIVATE_REPORT: {
-        RedStreamActivateReportItem *report_item = SPICE_CONTAINEROF(pipe_item,
-                                                                     RedStreamActivateReportItem,
-                                                                     pipe_item);
+        RedStreamActivateReportItem *report_item =
+            SPICE_UPCAST(RedStreamActivateReportItem, pipe_item);
         marshall_stream_activate_report(rcc, m, report_item);
         break;
     }
diff --git a/server/dcc.c b/server/dcc.c
index 15b65978..d96f1b2b 100644
--- a/server/dcc.c
+++ b/server/dcc.c
@@ -202,7 +202,7 @@ static RedSurfaceCreateItem *red_surface_create_item_new(RedChannel* channel,
     create->surface_create.flags = flags;
     create->surface_create.format = format;
 
-    red_pipe_item_init(&create->pipe_item, RED_PIPE_ITEM_TYPE_CREATE_SURFACE);
+    red_pipe_item_init(&create->base, RED_PIPE_ITEM_TYPE_CREATE_SURFACE);
     return create;
 }
 
@@ -246,7 +246,7 @@ bool dcc_clear_surface_drawables_from_pipe(DisplayChannelClient *dcc, int surfac
 
         l = l->next;
         if (item->type == RED_PIPE_ITEM_TYPE_DRAW) {
-            dpi = SPICE_CONTAINEROF(item, RedDrawablePipeItem, dpi_pipe_item);
+            dpi = SPICE_UPCAST(RedDrawablePipeItem, item);
             drawable = dpi->drawable;
         } else if (item->type == RED_PIPE_ITEM_TYPE_UPGRADE) {
             drawable = SPICE_UPCAST(RedUpgradeItem, item)->drawable;
@@ -313,7 +313,7 @@ void dcc_create_surface(DisplayChannelClient *dcc, int surface_id)
                                          surface->context.height,
                                          surface->context.format, flags);
     dcc->priv->surface_client_created[surface_id] = TRUE;
-    red_channel_client_pipe_add(RED_CHANNEL_CLIENT(dcc), &create->pipe_item);
+    red_channel_client_pipe_add(RED_CHANNEL_CLIENT(dcc), &create->base);
 }
 
 // adding the pipe item after pos. If pos == NULL, adding to head.
@@ -433,8 +433,7 @@ static void add_drawable_surface_images(DisplayChannelClient *dcc, Drawable *dra
 
 static void red_drawable_pipe_item_free(RedPipeItem *item)
 {
-    RedDrawablePipeItem *dpi = SPICE_CONTAINEROF(item, RedDrawablePipeItem,
-                                                 dpi_pipe_item);
+    RedDrawablePipeItem *dpi = SPICE_UPCAST(RedDrawablePipeItem, item);
     spice_assert(item->refcount == 0);
 
     dpi->drawable->pipes = g_list_remove(dpi->drawable->pipes, dpi);
@@ -451,7 +450,7 @@ static RedDrawablePipeItem *red_drawable_pipe_item_new(DisplayChannelClient *dcc
     dpi->drawable = drawable;
     dpi->dcc = dcc;
     drawable->pipes = g_list_prepend(drawable->pipes, dpi);
-    red_pipe_item_init_full(&dpi->dpi_pipe_item, RED_PIPE_ITEM_TYPE_DRAW,
+    red_pipe_item_init_full(&dpi->base, RED_PIPE_ITEM_TYPE_DRAW,
                             red_drawable_pipe_item_free);
     drawable->refs++;
     return dpi;
@@ -462,7 +461,7 @@ void dcc_prepend_drawable(DisplayChannelClient *dcc, Drawable *drawable)
     RedDrawablePipeItem *dpi = red_drawable_pipe_item_new(dcc, drawable);
 
     add_drawable_surface_images(dcc, drawable);
-    red_channel_client_pipe_add(RED_CHANNEL_CLIENT(dcc), &dpi->dpi_pipe_item);
+    red_channel_client_pipe_add(RED_CHANNEL_CLIENT(dcc), &dpi->base);
 }
 
 void dcc_append_drawable(DisplayChannelClient *dcc, Drawable *drawable)
@@ -470,7 +469,7 @@ void dcc_append_drawable(DisplayChannelClient *dcc, Drawable *drawable)
     RedDrawablePipeItem *dpi = red_drawable_pipe_item_new(dcc, drawable);
 
     add_drawable_surface_images(dcc, drawable);
-    red_channel_client_pipe_add_tail(RED_CHANNEL_CLIENT(dcc), &dpi->dpi_pipe_item);
+    red_channel_client_pipe_add_tail(RED_CHANNEL_CLIENT(dcc), &dpi->base);
 }
 
 void dcc_add_drawable_after(DisplayChannelClient *dcc, Drawable *drawable, RedPipeItem *pos)
@@ -478,7 +477,7 @@ void dcc_add_drawable_after(DisplayChannelClient *dcc, Drawable *drawable, RedPi
     RedDrawablePipeItem *dpi = red_drawable_pipe_item_new(dcc, drawable);
 
     add_drawable_surface_images(dcc, drawable);
-    red_channel_client_pipe_add_after(RED_CHANNEL_CLIENT(dcc), &dpi->dpi_pipe_item, pos);
+    red_channel_client_pipe_add_after(RED_CHANNEL_CLIENT(dcc), &dpi->base, pos);
 }
 
 static void dcc_init_stream_agents(DisplayChannelClient *dcc)
@@ -634,9 +633,9 @@ void dcc_video_stream_agent_clip(DisplayChannelClient* dcc, VideoStreamAgent *ag
     red_channel_client_pipe_add(RED_CHANNEL_CLIENT(dcc), &item->base);
 }
 
-static void red_monitors_config_item_free(RedPipeItem *base)
+static void red_monitors_config_item_free(RedPipeItem *pipe_item)
 {
-    RedMonitorsConfigItem *item = SPICE_CONTAINEROF(base, RedMonitorsConfigItem, pipe_item);
+    RedMonitorsConfigItem *item = SPICE_UPCAST(RedMonitorsConfigItem, pipe_item);
 
     monitors_config_unref(item->monitors_config);
     g_free(item);
@@ -650,7 +649,7 @@ static RedMonitorsConfigItem *red_monitors_config_item_new(RedChannel* channel,
     mci = g_new(RedMonitorsConfigItem, 1);
     mci->monitors_config = monitors_config_ref(monitors_config);
 
-    red_pipe_item_init_full(&mci->pipe_item, RED_PIPE_ITEM_TYPE_MONITORS_CONFIG,
+    red_pipe_item_init_full(&mci->base, RED_PIPE_ITEM_TYPE_MONITORS_CONFIG,
                             red_monitors_config_item_free);
     return mci;
 }
@@ -673,7 +672,7 @@ void dcc_push_monitors_config(DisplayChannelClient *dcc)
 
     mci = red_monitors_config_item_new(red_channel_client_get_channel(RED_CHANNEL_CLIENT(dcc)),
                                        monitors_config);
-    red_channel_client_pipe_add(RED_CHANNEL_CLIENT(dcc), &mci->pipe_item);
+    red_channel_client_pipe_add(RED_CHANNEL_CLIENT(dcc), &mci->base);
 }
 
 static RedSurfaceDestroyItem *red_surface_destroy_item_new(uint32_t surface_id)
@@ -682,7 +681,7 @@ static RedSurfaceDestroyItem *red_surface_destroy_item_new(uint32_t surface_id)
 
     destroy = g_new(RedSurfaceDestroyItem, 1);
     destroy->surface_destroy.surface_id = surface_id;
-    red_pipe_item_init(&destroy->pipe_item, RED_PIPE_ITEM_TYPE_DESTROY_SURFACE);
+    red_pipe_item_init(&destroy->base, RED_PIPE_ITEM_TYPE_DESTROY_SURFACE);
 
     return destroy;
 }
@@ -744,7 +743,7 @@ void dcc_destroy_surface(DisplayChannelClient *dcc, uint32_t surface_id)
 
     dcc->priv->surface_client_created[surface_id] = FALSE;
     destroy = red_surface_destroy_item_new(surface_id);
-    red_channel_client_pipe_add(RED_CHANNEL_CLIENT(dcc), &destroy->pipe_item);
+    red_channel_client_pipe_add(RED_CHANNEL_CLIENT(dcc), &destroy->base);
 }
 
 #define MIN_DIMENSION_TO_QUIC 3
diff --git a/server/dcc.h b/server/dcc.h
index 16d60ed0..76c078bf 100644
--- a/server/dcc.h
+++ b/server/dcc.h
@@ -96,7 +96,7 @@ typedef struct FreeList {
 #define DCC_TO_DC(dcc) ((DisplayChannel*)red_channel_client_get_channel((RedChannelClient*)dcc))
 
 typedef struct RedSurfaceCreateItem {
-    RedPipeItem pipe_item;
+    RedPipeItem base;
     SpiceMsgSurfaceCreate surface_create;
 } RedSurfaceCreateItem;
 
@@ -124,7 +124,7 @@ typedef struct RedImageItem {
 } RedImageItem;
 
 typedef struct RedDrawablePipeItem {
-    RedPipeItem dpi_pipe_item;
+    RedPipeItem base;
     Drawable *drawable;
     DisplayChannelClient *dcc;
 } RedDrawablePipeItem;
diff --git a/server/display-channel-private.h b/server/display-channel-private.h
index 617ce30d..27f0a019 100644
--- a/server/display-channel-private.h
+++ b/server/display-channel-private.h
@@ -132,7 +132,7 @@ struct DisplayChannelPrivate
                   DisplayChannelClient, _data)
 
 typedef struct RedMonitorsConfigItem {
-    RedPipeItem pipe_item;
+    RedPipeItem base;
     MonitorsConfig *monitors_config;
 } RedMonitorsConfigItem;
 
@@ -174,7 +174,7 @@ int display_channel_get_video_stream_id(DisplayChannel *display, VideoStream *st
 VideoStream *display_channel_get_nth_video_stream(DisplayChannel *display, gint i);
 
 typedef struct RedSurfaceDestroyItem {
-    RedPipeItem pipe_item;
+    RedPipeItem base;
     SpiceMsgSurfaceDestroy surface_destroy;
 } RedSurfaceDestroyItem;
 
diff --git a/server/display-channel.c b/server/display-channel.c
index b74c1e95..5f2e866f 100644
--- a/server/display-channel.c
+++ b/server/display-channel.c
@@ -385,7 +385,7 @@ static void pipes_add_drawable_after(DisplayChannel *display,
         dpi_pos_after = l->data;
 
         num_other_linked++;
-        dcc_add_drawable_after(dpi_pos_after->dcc, drawable, &dpi_pos_after->dpi_pipe_item);
+        dcc_add_drawable_after(dpi_pos_after->dcc, drawable, &dpi_pos_after->base);
     }
 
     if (num_other_linked == 0) {
@@ -446,7 +446,7 @@ static void drawable_remove_from_pipes(Drawable *drawable)
         RedChannelClient *rcc;
 
         rcc = RED_CHANNEL_CLIENT(dpi->dcc);
-        red_channel_client_pipe_remove_and_release(rcc, &dpi->dpi_pipe_item);
+        red_channel_client_pipe_remove_and_release(rcc, &dpi->base);
     }
 }
 
diff --git a/server/video-stream.c b/server/video-stream.c
index a4b83b4f..b624093e 100644
--- a/server/video-stream.c
+++ b/server/video-stream.c
@@ -365,7 +365,7 @@ static void before_reattach_stream(DisplayChannel *display,
         agent = dcc_get_video_stream_agent(dcc, index);
 
         if (red_channel_client_pipe_item_is_linked(RED_CHANNEL_CLIENT(dcc),
-                                                   &dpi->dpi_pipe_item)) {
+                                                   &dpi->base)) {
 #ifdef STREAM_STATS
             agent->stats.num_drops_pipe++;
 #endif
@@ -755,11 +755,11 @@ void dcc_create_stream(DisplayChannelClient *dcc, VideoStream *stream)
         RedStreamActivateReportItem *report_pipe_item = g_new0(RedStreamActivateReportItem, 1);
 
         agent->report_id = rand();
-        red_pipe_item_init(&report_pipe_item->pipe_item,
+        red_pipe_item_init(&report_pipe_item->base,
                            RED_PIPE_ITEM_TYPE_STREAM_ACTIVATE_REPORT);
         report_pipe_item->stream_id = stream_id;
         report_pipe_item->report_id = agent->report_id;
-        red_channel_client_pipe_add(RED_CHANNEL_CLIENT(dcc), &report_pipe_item->pipe_item);
+        red_channel_client_pipe_add(RED_CHANNEL_CLIENT(dcc), &report_pipe_item->base);
     }
 #ifdef STREAM_STATS
     memset(&agent->stats, 0, sizeof(StreamStats));
diff --git a/server/video-stream.h b/server/video-stream.h
index b733771b..46b076fd 100644
--- a/server/video-stream.h
+++ b/server/video-stream.h
@@ -54,7 +54,7 @@ typedef struct RedUpgradeItem {
 } RedUpgradeItem;
 
 typedef struct RedStreamActivateReportItem {
-    RedPipeItem pipe_item;
+    RedPipeItem base;
     uint32_t stream_id;
     uint32_t report_id;
 } RedStreamActivateReportItem;
-- 
2.17.1

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux Virtualization]     [Linux Virtualization]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]