From 1eb7538b7753535f9502c8c5779fd9f4e80d1559 Mon Sep 17 00:00:00 2001 From: Juan Quintela Date: Thu, 10 Sep 2009 03:04:29 +0200 Subject: vmstate: add sensible arguments to vmstate_unregister() vmsd alone is not enugh, because we can have several structs saved with the same description (vmsd). Signed-off-by: Juan Quintela Signed-off-by: Anthony Liguori --- savevm.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'savevm.c') diff --git a/savevm.c b/savevm.c index 0dcab79..7b0989f 100644 --- a/savevm.c +++ b/savevm.c @@ -1002,9 +1002,16 @@ int vmstate_register(int instance_id, const VMStateDescription *vmsd, return 0; } -void vmstate_unregister(const char *idstr, void *opaque) +void vmstate_unregister(const VMStateDescription *vmsd, void *opaque) { - unregister_savevm(idstr, opaque); + SaveStateEntry *se, *new_se; + + TAILQ_FOREACH_SAFE(se, &savevm_handlers, entry, new_se) { + if (se->vmsd == vmsd && se->opaque == opaque) { + TAILQ_REMOVE(&savevm_handlers, se, entry); + qemu_free(se); + } + } } int vmstate_load_state(QEMUFile *f, const VMStateDescription *vmsd, -- cgit v1.1