From 53a5736f949a47fa7d890baf8472824263682c92 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
Date: Thu, 8 Dec 2016 19:32:42 +0300
Subject: [PATCH] char-win: convert to finalize
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
 qemu-char.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/qemu-char.c b/qemu-char.c
index 83636d76c0..0cece8a34f 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -2150,8 +2150,9 @@ typedef struct {
 static int win_chr_poll(void *opaque);
 static int win_chr_pipe_poll(void *opaque);
 
-static void win_chr_free(Chardev *chr)
+static void char_win_finalize(Object *obj)
 {
+    Chardev *chr = CHARDEV(obj);
     WinChardev *s = WIN_CHARDEV(chr);
 
     if (s->skip_free) {
@@ -2160,15 +2161,12 @@ static void win_chr_free(Chardev *chr)
 
     if (s->hsend) {
         CloseHandle(s->hsend);
-        s->hsend = NULL;
     }
     if (s->hrecv) {
         CloseHandle(s->hrecv);
-        s->hrecv = NULL;
     }
     if (s->hcom) {
         CloseHandle(s->hcom);
-        s->hcom = NULL;
     }
     if (s->fpipe)
         qemu_del_polling_cb(win_chr_pipe_poll, chr);
@@ -2241,7 +2239,6 @@ static int win_chr_init(Chardev *chr, const char *filename, Error **errp)
     return 0;
 
  fail:
-    win_chr_free(chr);
     return -1;
 }
 
@@ -2416,7 +2413,6 @@ static int win_chr_pipe_init(Chardev *chr, const char *filename,
     return 0;
 
  fail:
-    win_chr_free(chr);
     return -1;
 }
 
@@ -2447,13 +2443,13 @@ static void char_win_class_init(ObjectClass *oc, void *data)
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
     cc->chr_write = win_chr_write;
-    cc->chr_free = win_chr_free;
 }
 
 static const TypeInfo char_win_type_info = {
     .name = TYPE_CHARDEV_WIN,
     .parent = TYPE_CHARDEV,
     .instance_size = sizeof(WinChardev),
+    .instance_finalize = char_win_finalize,
     .class_init = char_win_class_init,
     .abstract = true,
 };
-- 
2.30.2