mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:46:10 +00:00
ui/console: unregister console from QOM tree on close
Call object_unparent() in graphic_console_close() to remove the console from /backend/console[N]. This drops the QOM tree reference, while the initial object_new() reference keeps the console alive for potential reuse. When graphic_console_init() reuses a closed console, re-register it in the QOM tree. Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-ID: <20260623-b4-ui-v4-32-4656aec3398d@redhat.com>
This commit is contained in:
@@ -1140,6 +1140,9 @@ QemuConsole *qemu_graphic_console_create(DeviceState *dev, uint32_t head,
|
||||
trace_console_gfx_reuse(s->index);
|
||||
width = qemu_console_get_width(s, 0);
|
||||
height = qemu_console_get_height(s, 0);
|
||||
if (s->ds->initialized) {
|
||||
qemu_console_add_to_qom(s);
|
||||
}
|
||||
} else {
|
||||
trace_console_gfx_new();
|
||||
s = (QemuConsole *)object_new(TYPE_QEMU_GRAPHIC_CONSOLE);
|
||||
@@ -1180,6 +1183,7 @@ void qemu_graphic_console_close(QemuConsole *con)
|
||||
}
|
||||
surface = qemu_create_placeholder_surface(width, height, unplugged);
|
||||
qemu_console_set_surface(con, surface);
|
||||
object_unparent(OBJECT(con));
|
||||
}
|
||||
|
||||
QemuConsole *qemu_console_lookup_default(void)
|
||||
|
||||
Reference in New Issue
Block a user