mirror of https://gitee.com/openkylin/qemu.git
char-win: convert to finalize
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
c266d94e7b
commit
53a5736f94
10
qemu-char.c
10
qemu-char.c
|
@ -2150,8 +2150,9 @@ typedef struct {
|
||||||
static int win_chr_poll(void *opaque);
|
static int win_chr_poll(void *opaque);
|
||||||
static int win_chr_pipe_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);
|
WinChardev *s = WIN_CHARDEV(chr);
|
||||||
|
|
||||||
if (s->skip_free) {
|
if (s->skip_free) {
|
||||||
|
@ -2160,15 +2161,12 @@ static void win_chr_free(Chardev *chr)
|
||||||
|
|
||||||
if (s->hsend) {
|
if (s->hsend) {
|
||||||
CloseHandle(s->hsend);
|
CloseHandle(s->hsend);
|
||||||
s->hsend = NULL;
|
|
||||||
}
|
}
|
||||||
if (s->hrecv) {
|
if (s->hrecv) {
|
||||||
CloseHandle(s->hrecv);
|
CloseHandle(s->hrecv);
|
||||||
s->hrecv = NULL;
|
|
||||||
}
|
}
|
||||||
if (s->hcom) {
|
if (s->hcom) {
|
||||||
CloseHandle(s->hcom);
|
CloseHandle(s->hcom);
|
||||||
s->hcom = NULL;
|
|
||||||
}
|
}
|
||||||
if (s->fpipe)
|
if (s->fpipe)
|
||||||
qemu_del_polling_cb(win_chr_pipe_poll, chr);
|
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;
|
return 0;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
win_chr_free(chr);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2416,7 +2413,6 @@ static int win_chr_pipe_init(Chardev *chr, const char *filename,
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
win_chr_free(chr);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2447,13 +2443,13 @@ static void char_win_class_init(ObjectClass *oc, void *data)
|
||||||
ChardevClass *cc = CHARDEV_CLASS(oc);
|
ChardevClass *cc = CHARDEV_CLASS(oc);
|
||||||
|
|
||||||
cc->chr_write = win_chr_write;
|
cc->chr_write = win_chr_write;
|
||||||
cc->chr_free = win_chr_free;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const TypeInfo char_win_type_info = {
|
static const TypeInfo char_win_type_info = {
|
||||||
.name = TYPE_CHARDEV_WIN,
|
.name = TYPE_CHARDEV_WIN,
|
||||||
.parent = TYPE_CHARDEV,
|
.parent = TYPE_CHARDEV,
|
||||||
.instance_size = sizeof(WinChardev),
|
.instance_size = sizeof(WinChardev),
|
||||||
|
.instance_finalize = char_win_finalize,
|
||||||
.class_init = char_win_class_init,
|
.class_init = char_win_class_init,
|
||||||
.abstract = true,
|
.abstract = true,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue