mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2026-08-12 19:18:11 +00:00
red-qxl: Reference RCC pointer in migration request
The message is asynchronous so to avoid the object to potentially been released before being processed keep a strong reference to it. Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Christophe Fergeau <cfergeau@redhat.com>
This commit is contained in:
parent
b89bd9ef9a
commit
d248714439
@ -130,7 +130,7 @@ static void red_qxl_display_migrate(RedChannelClient *rcc)
|
||||
g_object_get(channel, "channel-type", &type, "id", &id, NULL);
|
||||
dispatcher = (Dispatcher *)g_object_get_data(G_OBJECT(channel), "dispatcher");
|
||||
spice_printerr("channel type %u id %u", type, id);
|
||||
payload.rcc = rcc;
|
||||
payload.rcc = g_object_ref(rcc);
|
||||
dispatcher_send_message(dispatcher,
|
||||
RED_WORKER_MESSAGE_DISPLAY_MIGRATE,
|
||||
&payload);
|
||||
@ -187,7 +187,7 @@ static void red_qxl_cursor_migrate(RedChannelClient *rcc)
|
||||
g_object_get(channel, "channel-type", &type, "id", &id, NULL);
|
||||
dispatcher = (Dispatcher *)g_object_get_data(G_OBJECT(channel), "dispatcher");
|
||||
spice_printerr("channel type %u id %u", type, id);
|
||||
payload.rcc = rcc;
|
||||
payload.rcc = g_object_ref(rcc);
|
||||
dispatcher_send_message(dispatcher,
|
||||
RED_WORKER_MESSAGE_CURSOR_MIGRATE,
|
||||
&payload);
|
||||
|
||||
@ -747,6 +747,7 @@ static void handle_dev_display_migrate(void *opaque, void *payload)
|
||||
spice_debug("migrate display client");
|
||||
spice_assert(rcc);
|
||||
red_migrate_display(worker->display_channel, rcc);
|
||||
g_object_unref(rcc);
|
||||
}
|
||||
|
||||
static inline uint32_t qxl_monitors_config_size(uint32_t heads)
|
||||
@ -828,6 +829,7 @@ static void handle_dev_cursor_migrate(void *opaque, void *payload)
|
||||
|
||||
spice_debug("migrate cursor client");
|
||||
cursor_channel_client_migrate(rcc);
|
||||
g_object_unref(rcc);
|
||||
}
|
||||
|
||||
static void handle_dev_set_compression(void *opaque, void *payload)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user