From: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> --- server/red_dispatcher.c | 6 ++++-- server/red_dispatcher.h | 2 +- server/reds.c | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/server/red_dispatcher.c b/server/red_dispatcher.c index 0bc853d..c43da7d 100644 --- a/server/red_dispatcher.c +++ b/server/red_dispatcher.c @@ -1060,7 +1060,7 @@ static RedChannel *red_dispatcher_cursor_channel_create(RedDispatcher *dispatche return cursor_channel; } -void red_dispatcher_init(QXLInstance *qxl) +RedDispatcher *red_dispatcher_new(QXLInstance *qxl) { RedDispatcher *red_dispatcher; WorkerInitData init_data; @@ -1069,7 +1069,7 @@ void red_dispatcher_init(QXLInstance *qxl) RedChannel *cursor_channel; ClientCbs client_cbs = { NULL, }; - spice_return_if_fail(qxl->st->dispatcher == NULL); + spice_return_val_if_fail(qxl->st->dispatcher == NULL, NULL); static gsize initialized = FALSE; if (g_once_init_enter(&initialized)) { @@ -1164,6 +1164,8 @@ void red_dispatcher_init(QXLInstance *qxl) qxl->st->qif->attache_worker(qxl, &red_dispatcher->base); qxl->st->qif->set_compression_level(qxl, calc_compression_level()); + + return red_dispatcher; } struct Dispatcher *red_dispatcher_get_dispatcher(RedDispatcher *red_dispatcher) diff --git a/server/red_dispatcher.h b/server/red_dispatcher.h index ae46982..f487317 100644 --- a/server/red_dispatcher.h +++ b/server/red_dispatcher.h @@ -28,7 +28,7 @@ typedef struct RedChannelClient RedChannelClient; typedef struct AsyncCommand AsyncCommand; -void red_dispatcher_init(QXLInstance *qxl); +RedDispatcher *red_dispatcher_new(QXLInstance *qxl); void red_dispatcher_set_mm_time(uint32_t); void red_dispatcher_on_ic_change(void); diff --git a/server/reds.c b/server/reds.c index 2aea688..d53ea66 100644 --- a/server/reds.c +++ b/server/reds.c @@ -3156,7 +3156,7 @@ SPICE_GNUC_VISIBLE int spice_server_add_interface(SpiceServer *s, qxl = SPICE_CONTAINEROF(sin, QXLInstance, base); qxl->st = spice_new0(QXLState, 1); qxl->st->qif = SPICE_CONTAINEROF(interface, QXLInterface, base); - red_dispatcher_init(qxl); + qxl->st->dispatcher = red_dispatcher_new(qxl); } else if (strcmp(interface->type, SPICE_INTERFACE_TABLET) == 0) { spice_info("SPICE_INTERFACE_TABLET"); -- 2.4.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel