diff options
author | Jonathon Jongsma <jjongsma@redhat.com> | 2015-02-06 14:31:11 -0600 |
---|---|---|
committer | Fabiano FidĂȘncio <fidencio@redhat.com> | 2015-02-23 23:00:46 +0100 |
commit | 2d938286706db06c5d27f5d9d8aaf5e0d02acec3 (patch) | |
tree | d3dff5a0544e6883681519d10cc9f4ab2554853b | |
parent | 60c4c9042efeee48b827b5d9933d639134172f07 (diff) | |
download | spice-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.c | 1 | ||||
-rw-r--r-- | server/red-worker.c | 15 | ||||
-rw-r--r-- | server/red-worker.h | 1 |
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); |