char-serial inherits from char-fd finalizer. Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> --- qemu-char.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/qemu-char.c b/qemu-char.c index 939c598c35..5d4cb85cea 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -1291,9 +1291,10 @@ static void fd_chr_update_read_handler(Chardev *chr, } } -static void fd_chr_free(struct Chardev *chr) +static void char_fd_finalize(Object *obj) { - FDChardev *s = FD_CHARDEV(chr); + Chardev *chr = CHARDEV(obj); + FDChardev *s = FD_CHARDEV(obj); remove_fd_in_watch(chr); if (s->ioc_in) { @@ -1332,13 +1333,13 @@ static void char_fd_class_init(ObjectClass *oc, void *data) cc->chr_add_watch = fd_chr_add_watch; cc->chr_write = fd_chr_write; cc->chr_update_read_handler = fd_chr_update_read_handler; - cc->chr_free = fd_chr_free; } static const TypeInfo char_fd_type_info = { .name = TYPE_CHARDEV_FD, .parent = TYPE_CHARDEV, .instance_size = sizeof(FDChardev), + .instance_finalize = char_fd_finalize, .class_init = char_fd_class_init, .abstract = true, }; @@ -1420,7 +1421,6 @@ static void qemu_chr_set_echo_stdio(Chardev *chr, bool echo) static void char_stdio_finalize(Object *obj) { term_exit(); - fd_chr_free(CHARDEV(chr)); } static void qemu_chr_open_stdio(Chardev *chr, @@ -1908,11 +1908,6 @@ static int tty_serial_ioctl(Chardev *chr, int cmd, void *arg) } return 0; } - -static void qemu_chr_free_tty(Chardev *chr) -{ - fd_chr_free(chr); -} #endif /* __linux__ || __sun__ */ #if defined(__linux__) @@ -4759,7 +4754,6 @@ static void char_serial_class_init(ObjectClass *oc, void *data) cc->open = qmp_chardev_open_serial; #ifndef _WIN32 cc->chr_ioctl = tty_serial_ioctl; - cc->chr_free = qemu_chr_free_tty; #endif } -- 2.11.0