[Spice-commits] server/display-channel.c server/display-channel.h server/red-worker.c

Frediano Ziglio fziglio at kemper.freedesktop.org
Sat Mar 5 10:30:45 UTC 2016


 server/display-channel.c |    3 ++-
 server/display-channel.h |    3 ++-
 server/red-worker.c      |   19 ++++++++++++++-----
 3 files changed, 18 insertions(+), 7 deletions(-)

New commits:
commit df214cd0315e4e9bc417f2948db7e0b9b4bfa5a0
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Feb 6 14:31:11 2015 -0600

    Remove use of global 'reds' within RedWorker
    
    Get the server variable from the QXLState instead of using the
    global variable
    
    Acked-by: Fabiano FidĂȘncio <fidencio at redhat.com>
    Acked-by: Frediano Ziglio <fziglio at redhat.com>

diff --git a/server/display-channel.c b/server/display-channel.c
index 8065676..ff9aeac 100644
--- a/server/display-channel.c
+++ b/server/display-channel.c
@@ -2025,7 +2025,8 @@ static SpiceCanvas *image_surfaces_get(SpiceImageSurfaces *surfaces, uint32_t su
     return display->surfaces[surface_id].context.canvas;
 }
 
-DisplayChannel* display_channel_new(RedWorker *worker, int migrate, int stream_video,
+DisplayChannel* display_channel_new(SpiceServer *reds, RedWorker *worker, 
+                                    int migrate, int stream_video,
                                     uint32_t n_surfaces)
 {
     DisplayChannel *display;
diff --git a/server/display-channel.h b/server/display-channel.h
index 1bccd22..6b053de 100644
--- a/server/display-channel.h
+++ b/server/display-channel.h
@@ -250,7 +250,8 @@ typedef struct UpgradeItem {
 } UpgradeItem;
 
 
-DisplayChannel*            display_channel_new                       (RedWorker *worker,
+DisplayChannel*            display_channel_new                       (SpiceServer *reds,
+                                                                      RedWorker *worker,
                                                                       int migrate,
                                                                       int stream_video,
                                                                       uint32_t n_surfaces);
diff --git a/server/red-worker.c b/server/red-worker.c
index 0eb385a..0b61ec4 100644
--- a/server/red-worker.c
+++ b/server/red-worker.c
@@ -91,6 +91,8 @@ struct RedWorker {
     FILE *record_fd;
 };
 
+static RedsState* red_worker_get_server(RedWorker *worker);
+
 static int display_is_connected(RedWorker *worker)
 {
     return (worker->display_channel && red_channel_is_connected(
@@ -478,15 +480,16 @@ CommonGraphicsChannel *red_worker_new_channel(RedWorker *worker, int size,
     channel_cbs->alloc_recv_buf = common_alloc_recv_buf;
     channel_cbs->release_recv_buf = common_release_recv_buf;
 
-    channel = red_channel_create_parser(size, reds, &worker->core,
-                                        channel_type, worker->qxl->id,
-                                        TRUE /* handle_acks */,
+    channel = red_channel_create_parser(size, red_worker_get_server(worker),
+                                        &worker->core, channel_type,
+                                        worker->qxl->id, TRUE /* handle_acks */,
                                         spice_get_client_channel_parser(channel_type, NULL),
                                         handle_parsed,
                                         channel_cbs,
                                         migration_flags);
     spice_return_val_if_fail(channel, NULL);
-    red_channel_set_stat_node(channel, stat_add_node(reds, worker->stat, name, TRUE));
+    red_channel_set_stat_node(channel, stat_add_node(red_worker_get_server(worker),
+                                                     worker->stat, name, TRUE));
 
     common = (CommonGraphicsChannel *)channel;
     common->qxl = worker->qxl;
@@ -1468,6 +1471,7 @@ RedWorker* red_worker_new(QXLInstance *qxl)
     RedWorker *worker;
     Dispatcher *dispatcher;
     const char *record_filename;
+    RedsState *reds = red_qxl_get_server(qxl->st);
 
     qxl_get_interface(qxl)->get_init_info(qxl, &init_info);
 
@@ -1531,7 +1535,7 @@ RedWorker* red_worker_new(QXLInstance *qxl)
 
     worker->cursor_channel = cursor_channel_new(worker);
     // TODO: handle seemless migration. Temp, setting migrate to FALSE
-    worker->display_channel = display_channel_new(worker, FALSE, reds_get_streaming_video(reds),
+    worker->display_channel = display_channel_new(reds, worker, FALSE, reds_get_streaming_video(reds),
                                                   init_info.n_surfaces);
 
     return worker;
@@ -1591,3 +1595,8 @@ RedChannel* red_worker_get_display_channel(RedWorker *worker)
 
     return RED_CHANNEL(worker->display_channel);
 }
+
+static RedsState* red_worker_get_server(RedWorker *worker)
+{
+    return red_qxl_get_server(worker->qxl->st);
+}


More information about the Spice-commits mailing list