[Spice-devel] [PATCH 07/18] Change new_pipe_item_t function signature

Jonathon Jongsma jjongsma at redhat.com
Wed Apr 27 16:50:30 UTC 2016


Now that pipe_item_init() does not require a RedChannelClient* argument
anymore, the new_pipe_item_t callback function does not ever use the
channel client object passed to it. So just remove this and simplify
things.
---
 server/cursor-channel.c |  2 +-
 server/dcc.c            | 15 ++++++++++++---
 server/dcc.h            |  6 ++----
 server/inputs-channel.c |  3 +--
 server/main-channel.c   | 45 +++++++++++++++++++++++----------------------
 server/red-channel.c    |  2 +-
 server/red-channel.h    |  2 +-
 7 files changed, 41 insertions(+), 34 deletions(-)

diff --git a/server/cursor-channel.c b/server/cursor-channel.c
index 697d61d..c4304cc 100644
--- a/server/cursor-channel.c
+++ b/server/cursor-channel.c
@@ -132,7 +132,7 @@ static void cursor_set_item(CursorChannel *cursor, CursorItem *item)
     cursor->item = item ? cursor_item_ref(item) : NULL;
 }
 
-static RedPipeItem *new_cursor_pipe_item(RedChannelClient *rcc, void *data, int num)
+static RedPipeItem *new_cursor_pipe_item(void *data, int num)
 {
     RedCursorPipeItem *item = spice_malloc0(sizeof(RedCursorPipeItem));
 
diff --git a/server/dcc.c b/server/dcc.c
index 038d74d..7ad8043 100644
--- a/server/dcc.c
+++ b/server/dcc.c
@@ -464,7 +464,7 @@ void dcc_start(DisplayChannelClient *dcc)
 
     if (reds_stream_is_plain_unix(rcc->stream) &&
         red_channel_client_test_remote_cap(rcc, SPICE_DISPLAY_CAP_GL_SCANOUT)) {
-        red_channel_client_pipe_add(rcc, dcc_gl_scanout_item_new(rcc, NULL, 0));
+        red_channel_client_pipe_add(rcc, dcc_gl_scanout_item_new(NULL, 0));
         dcc_push_monitors_config(dcc);
     }
 }
@@ -570,11 +570,13 @@ static RedSurfaceDestroyItem *red_surface_destroy_item_new(RedChannel *channel,
     return destroy;
 }
 
-RedPipeItem *dcc_gl_scanout_item_new(RedChannelClient *rcc, void *data, int num)
+RedPipeItem *dcc_gl_scanout_item_new(void *data, int num)
 {
     RedGlScanoutUnixItem *item = spice_new(RedGlScanoutUnixItem, 1);
     spice_return_val_if_fail(item != NULL, NULL);
 
+// TODO TODO TODO
+#if 0
     /* FIXME: on !unix peer, start streaming with a video codec */
     if (!reds_stream_is_plain_unix(rcc->stream) ||
         !red_channel_client_test_remote_cap(rcc, SPICE_DISPLAY_CAP_GL_SCANOUT)) {
@@ -582,19 +584,25 @@ RedPipeItem *dcc_gl_scanout_item_new(RedChannelClient *rcc, void *data, int num)
         red_channel_client_disconnect(rcc);
         return NULL;
     }
+#endif
 
     red_pipe_item_init(&item->base, RED_PIPE_ITEM_TYPE_GL_SCANOUT);
 
     return &item->base;
 }
 
-RedPipeItem *dcc_gl_draw_item_new(RedChannelClient *rcc, void *data, int num)
+RedPipeItem *dcc_gl_draw_item_new(void *data, int num)
 {
+// TODO TODO TODO
+#if 0
     DisplayChannelClient *dcc = RCC_TO_DCC(rcc);
+#endif
     const SpiceMsgDisplayGlDraw *draw = data;
     RedGlDrawItem *item = spice_new(RedGlDrawItem, 1);
     spice_return_val_if_fail(item != NULL, NULL);
 
+// TODO TODO TODO
+#if 0
     if (!red_channel_client_test_remote_cap(rcc, SPICE_DISPLAY_CAP_GL_SCANOUT)) {
         spice_printerr("FIXME: client does not support GL scanout");
         red_channel_client_disconnect(rcc);
@@ -602,6 +610,7 @@ RedPipeItem *dcc_gl_draw_item_new(RedChannelClient *rcc, void *data, int num)
     }
 
     dcc->gl_draw_ongoing = TRUE;
+#endif
     item->draw = *draw;
     red_pipe_item_init(&item->base, RED_PIPE_ITEM_TYPE_GL_DRAW);
 
diff --git a/server/dcc.h b/server/dcc.h
index 509a6c6..6ca5ee7 100644
--- a/server/dcc.h
+++ b/server/dcc.h
@@ -214,10 +214,8 @@ int                        dcc_clear_surface_drawables_from_pipe     (DisplayCha
                                                                       int wait_if_used);
 int                        dcc_drawable_is_in_pipe                   (DisplayChannelClient *dcc,
                                                                       Drawable *drawable);
-RedPipeItem *              dcc_gl_scanout_item_new                   (RedChannelClient *rcc,
-                                                                      void *data, int num);
-RedPipeItem *              dcc_gl_draw_item_new                      (RedChannelClient *rcc,
-                                                                      void *data, int num);
+RedPipeItem *              dcc_gl_scanout_item_new                   (void *data, int num);
+RedPipeItem *              dcc_gl_draw_item_new                      (void *data, int num);
 
 typedef struct compress_send_data_t {
     void*    comp_buf;
diff --git a/server/inputs-channel.c b/server/inputs-channel.c
index da26cf6..efa7cbf 100644
--- a/server/inputs-channel.c
+++ b/server/inputs-channel.c
@@ -229,8 +229,7 @@ static uint8_t kbd_get_leds(SpiceKbdInstance *sin)
     return sif->get_leds(sin);
 }
 
-static RedPipeItem *red_inputs_key_modifiers_item_new(
-    RedChannelClient *rcc, void *data, int num)
+static RedPipeItem *red_inputs_key_modifiers_item_new(void *data, int num)
 {
     RedKeyModifiersPipeItem *item = spice_malloc(sizeof(RedKeyModifiersPipeItem));
 
diff --git a/server/main-channel.c b/server/main-channel.c
index 7d55de7..0daacdc 100644
--- a/server/main-channel.c
+++ b/server/main-channel.c
@@ -221,7 +221,7 @@ typedef struct MainMouseModeItemInfo {
     int is_client_mouse_allowed;
 } MainMouseModeItemInfo;
 
-static RedPipeItem *main_mouse_mode_item_new(RedChannelClient *rcc, void *data, int num)
+static RedPipeItem *main_mouse_mode_item_new(void *data, int num)
 {
     RedMouseModePipeItem *item = spice_malloc(sizeof(RedMouseModePipeItem));
     MainMouseModeItemInfo *info = data;
@@ -232,7 +232,7 @@ static RedPipeItem *main_mouse_mode_item_new(RedChannelClient *rcc, void *data,
     return &item->base;
 }
 
-static RedPipeItem *red_ping_item_new(MainChannelClient *mcc, int size)
+static RedPipeItem *red_ping_item_new(int size)
 {
     RedPingPipeItem *item = spice_malloc(sizeof(RedPingPipeItem));
 
@@ -241,7 +241,7 @@ static RedPipeItem *red_ping_item_new(MainChannelClient *mcc, int size)
     return &item->base;
 }
 
-static RedPipeItem *main_agent_tokens_item_new(RedChannelClient *rcc, uint32_t num_tokens)
+static RedPipeItem *main_agent_tokens_item_new(uint32_t num_tokens)
 {
     RedTokensPipeItem *item = spice_malloc(sizeof(RedTokensPipeItem));
 
@@ -250,7 +250,7 @@ static RedPipeItem *main_agent_tokens_item_new(RedChannelClient *rcc, uint32_t n
     return &item->base;
 }
 
-static RedPipeItem *main_agent_data_item_new(RedChannelClient *rcc, uint8_t* data, size_t len,
+static RedPipeItem *main_agent_data_item_new(uint8_t* data, size_t len,
                                              spice_marshaller_item_free_func free_data,
                                              void *opaque)
 {
@@ -264,10 +264,12 @@ static RedPipeItem *main_agent_data_item_new(RedChannelClient *rcc, uint8_t* dat
     return &item->base;
 }
 
-static RedPipeItem *main_init_item_new(MainChannelClient *mcc,
-    int connection_id, int display_channels_hint, int current_mouse_mode,
-    int is_client_mouse_allowed, int multi_media_time,
-    int ram_hint)
+static RedPipeItem *main_init_item_new(int connection_id,
+                                       int display_channels_hint,
+                                       int current_mouse_mode,
+                                       int is_client_mouse_allowed,
+                                       int multi_media_time,
+                                       int ram_hint)
 {
     RedInitPipeItem *item = spice_malloc(sizeof(RedInitPipeItem));
 
@@ -281,7 +283,7 @@ static RedPipeItem *main_init_item_new(MainChannelClient *mcc,
     return &item->base;
 }
 
-static RedPipeItem *main_name_item_new(MainChannelClient *mcc, const char *name)
+static RedPipeItem *main_name_item_new(const char *name)
 {
     RedNamePipeItem *item = spice_malloc(sizeof(RedNamePipeItem) + strlen(name) + 1);
 
@@ -292,7 +294,7 @@ static RedPipeItem *main_name_item_new(MainChannelClient *mcc, const char *name)
     return &item->base;
 }
 
-static RedPipeItem *main_uuid_item_new(MainChannelClient *mcc, const uint8_t uuid[16])
+static RedPipeItem *main_uuid_item_new(const uint8_t uuid[16])
 {
     RedUuidPipeItem *item = spice_malloc(sizeof(RedUuidPipeItem));
 
@@ -302,7 +304,7 @@ static RedPipeItem *main_uuid_item_new(MainChannelClient *mcc, const uint8_t uui
     return &item->base;
 }
 
-static RedPipeItem *main_notify_item_new(RedChannelClient *rcc, void *data, int num)
+static RedPipeItem *main_notify_item_new(void *data, int num)
 {
     RedNotifyPipeItem *item = spice_malloc(sizeof(RedNotifyPipeItem));
     const char *msg = data;
@@ -312,8 +314,7 @@ static RedPipeItem *main_notify_item_new(RedChannelClient *rcc, void *data, int
     return &item->base;
 }
 
-static RedPipeItem *main_multi_media_time_item_new(
-    RedChannelClient *rcc, void *data, int num)
+static RedPipeItem *main_multi_media_time_item_new(void *data, int num)
 {
     RedMultiMediaTimePipeItem *item, *info = data;
 
@@ -352,7 +353,7 @@ int main_channel_client_push_ping(MainChannelClient *mcc, int size)
     if (mcc == NULL) {
         return FALSE;
     }
-    item = red_ping_item_new(mcc, size);
+    item = red_ping_item_new(size);
     red_channel_client_pipe_add_push(&mcc->base, item);
     return TRUE;
 }
@@ -442,7 +443,7 @@ static void main_channel_marshall_agent_disconnected(RedChannelClient *rcc,
 
 void main_channel_client_push_agent_tokens(MainChannelClient *mcc, uint32_t num_tokens)
 {
-    RedPipeItem *item = main_agent_tokens_item_new(&mcc->base, num_tokens);
+    RedPipeItem *item = main_agent_tokens_item_new(num_tokens);
 
     red_channel_client_pipe_add_push(&mcc->base, item);
 }
@@ -462,7 +463,7 @@ void main_channel_client_push_agent_data(MainChannelClient *mcc, uint8_t* data,
 {
     RedPipeItem *item;
 
-    item = main_agent_data_item_new(&mcc->base, data, len, free_data, opaque);
+    item = main_agent_data_item_new(data, len, free_data, opaque);
     red_channel_client_pipe_add_push(&mcc->base, item);
 }
 
@@ -516,9 +517,9 @@ void main_channel_push_init(MainChannelClient *mcc,
 {
     RedPipeItem *item;
 
-    item = main_init_item_new(mcc,
-             mcc->connection_id, display_channels_hint, current_mouse_mode,
-             is_client_mouse_allowed, multi_media_time, ram_hint);
+    item = main_init_item_new(mcc->connection_id, display_channels_hint,
+                              current_mouse_mode, is_client_mouse_allowed,
+                              multi_media_time, ram_hint);
     red_channel_client_pipe_add_push(&mcc->base, item);
 }
 
@@ -552,7 +553,7 @@ void main_channel_push_name(MainChannelClient *mcc, const char *name)
                                             SPICE_MAIN_CAP_NAME_AND_UUID))
         return;
 
-    item = main_name_item_new(mcc, name);
+    item = main_name_item_new(name);
     red_channel_client_pipe_add_push(&mcc->base, item);
 }
 
@@ -564,13 +565,13 @@ void main_channel_push_uuid(MainChannelClient *mcc, const uint8_t uuid[16])
                                             SPICE_MAIN_CAP_NAME_AND_UUID))
         return;
 
-    item = main_uuid_item_new(mcc, uuid);
+    item = main_uuid_item_new(uuid);
     red_channel_client_pipe_add_push(&mcc->base, item);
 }
 
 void main_channel_client_push_notify(MainChannelClient *mcc, const char *msg)
 {
-    RedPipeItem *item = main_notify_item_new(&mcc->base, (void *)msg, 1);
+    RedPipeItem *item = main_notify_item_new((void *)msg, 1);
     red_channel_client_pipe_add_push(&mcc->base, item);
 }
 
diff --git a/server/red-channel.c b/server/red-channel.c
index 68500dc..bf1ef2b 100644
--- a/server/red-channel.c
+++ b/server/red-channel.c
@@ -2275,7 +2275,7 @@ static int red_channel_pipes_create_batch(RedChannel *channel,
 
     RING_FOREACH_SAFE(link, next, &channel->clients) {
         rcc = SPICE_CONTAINEROF(link, RedChannelClient, channel_link);
-        item = (*creator)(rcc, data, num++);
+        item = (*creator)(data, num++);
         if (item) {
             (*pipe_add)(rcc, item);
             n++;
diff --git a/server/red-channel.h b/server/red-channel.h
index d169a9a..f7a5148 100644
--- a/server/red-channel.h
+++ b/server/red-channel.h
@@ -468,7 +468,7 @@ void red_channel_client_start_connectivity_monitoring(RedChannelClient *rcc, uin
 // to the RedPipeItem.
 
 // helper to push a new item to all channels
-typedef RedPipeItem *(*new_pipe_item_t)(RedChannelClient *rcc, void *data, int num);
+typedef RedPipeItem *(*new_pipe_item_t)(void *data, int num);
 int red_channel_pipes_new_add_push(RedChannel *channel, new_pipe_item_t creator, void *data);
 void red_channel_pipes_new_add(RedChannel *channel, new_pipe_item_t creator, void *data);
 void red_channel_pipes_new_add_tail(RedChannel *channel, new_pipe_item_t creator, void *data);
-- 
2.4.11



More information about the Spice-devel mailing list