diff mbox

[29/54] char-fd: convert to finalize

Message ID 20161212224325.20790-30-marcandre.lureau@redhat.com
State New
Headers show

Commit Message

Marc-André Lureau Dec. 12, 2016, 10:43 p.m. UTC
char-serial inherits from char-fd finalizer.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 qemu-char.c | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)
diff mbox

Patch

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
 }