[Spice-devel] [PATCH 12/18] Remove use of global 'reds' within RedWorker
Fabiano Fidêncio
ffidenci at redhat.com
Mon Feb 15 23:06:59 UTC 2016
On Mon, 2016-02-15 at 16:01 +0000, Frediano Ziglio wrote:
> From: Jonathon Jongsma <jjongsma at redhat.com>
>
> Get the server variable from the RedDispatcher instead of using the
> global variable
> ---
> server/display-channel.c | 1 +
> server/red-worker.c | 15 +++++++++++----
> 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 82dbe03..aa84356 100644
> --- a/server/display-channel.c
> +++ b/server/display-channel.c
> @@ -2030,6 +2030,7 @@ DisplayChannel* display_channel_new(RedWorker
> *worker, int migrate, int stream_v
> static SpiceImageSurfacesOps image_surfaces_ops = {
> image_surfaces_get,
> };
> + RedsState *reds = red_worker_get_server(worker);
>
> spice_info("create display channel");
> display = (DisplayChannel *)red_worker_new_channel(
> diff --git a/server/red-worker.c b/server/red-worker.c
> index 76e8625..7f07b74 100644
> --- a/server/red-worker.c
> +++ b/server/red-worker.c
> @@ -487,15 +487,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_par
> ser(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 = (CommonWorkerChannel *)channel;
> common->qxl = worker->qxl;
> @@ -1476,6 +1477,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);
>
> @@ -1600,3 +1602,8 @@ RedChannel*
> red_worker_get_display_channel(RedWorker *worker)
>
> return RED_CHANNEL(worker->display_channel);
> }
> +
> +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 8ef8287..f5f51bd 100644
> --- a/server/red-worker.h
> +++ b/server/red-worker.h
> @@ -96,6 +96,7 @@ bool red_worker_run(RedWorker *worker);
> QXLInstance* red_worker_get_qxl(RedWorker *worker);
> RedChannel* red_worker_get_cursor_channel(RedWorker *worker);
> RedChannel* red_worker_get_display_channel(RedWorker *worker);
> +SpiceServer* red_worker_get_server(RedWorker *worker);
>
> void red_drawable_unref(RedDrawable *red_drawable);
>
Acked-by: Fabiano Fidêncio <fidencio at redhat.com>
More information about the Spice-devel
mailing list