summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathon Jongsma <jjongsma@redhat.com>2015-02-06 14:31:11 -0600
committerFabiano FidĂȘncio <fidencio@redhat.com>2015-02-23 23:00:46 +0100
commit2d938286706db06c5d27f5d9d8aaf5e0d02acec3 (patch)
treed3dff5a0544e6883681519d10cc9f4ab2554853b
parent60c4c9042efeee48b827b5d9933d639134172f07 (diff)
downloadspice-2d938286706db06c5d27f5d9d8aaf5e0d02acec3.tar.gz
spice-2d938286706db06c5d27f5d9d8aaf5e0d02acec3.tar.xz
spice-2d938286706db06c5d27f5d9d8aaf5e0d02acec3.zip
Remove use of global 'reds' within RedWorker
Get the server variable from the RedDispatcher instead of using the global variable
-rw-r--r--server/display-channel.c1
-rw-r--r--server/red-worker.c15
-rw-r--r--server/red-worker.h1
3 files changed, 13 insertions, 4 deletions
diff --git a/server/display-channel.c b/server/display-channel.c
index d471997f..80b1e55e 100644
--- a/server/display-channel.c
+++ b/server/display-channel.c
@@ -1957,6 +1957,7 @@ DisplayChannel* display_channel_new(RedWorker *worker, int migrate, uint32_t n_s
static SpiceImageSurfacesOps image_surfaces_ops = {
image_surfaces_get,
};
+ RedsState *reds = red_worker_get_server(worker);
GArray *renderers = reds_get_renderers(reds);
spice_return_val_if_fail(renderers->len > 0, NULL);
diff --git a/server/red-worker.c b/server/red-worker.c
index 05022fb0..2fa5386a 100644
--- a/server/red-worker.c
+++ b/server/red-worker.c
@@ -738,15 +738,16 @@ CommonWorkerChannel *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, reds_stat_add_node(reds, worker->stat, name, TRUE));
+ red_channel_set_stat_node(channel, reds_stat_add_node(red_worker_get_server(worker),
+ worker->stat, name, TRUE));
common = (CommonWorkerChannel *)channel;
common->worker = worker;
@@ -1677,6 +1678,7 @@ RedWorker* red_worker_new(QXLInstance *qxl, RedDispatcher *red_dispatcher)
RedWorker *worker;
Dispatcher *dispatcher;
const char *record_filename;
+ RedsState *reds = red_dispatcher_get_server(red_dispatcher);
qxl->st->qif->get_init_info(qxl, &init_info);
@@ -1804,3 +1806,8 @@ clockid_t red_worker_get_clockid(RedWorker *worker)
return worker->clockid;
}
+
+RedsState* red_worker_get_server(RedWorker *worker)
+{
+ return red_dispatcher_get_server(worker->red_dispatcher);
+}
diff --git a/server/red-worker.h b/server/red-worker.h
index 43797cdc..e64fec83 100644
--- a/server/red-worker.h
+++ b/server/red-worker.h
@@ -105,6 +105,7 @@ GMainContext* red_worker_get_context(RedWorker *worker);
void red_worker_print_stats(RedWorker *worker);
clockid_t red_worker_get_clockid(RedWorker *worker);
RedMemSlotInfo* red_worker_get_memslot(RedWorker *worker);
+RedsState* red_worker_get_server(RedWorker *worker);
void red_drawable_unref(RedWorker *worker, RedDrawable *red_drawable,
uint32_t group_id);