From: Kirill Shchetiniuk <kshcheti@redhat.com>
Defined glib cleanup function for virStream object type and enabled
the automatic memory management
Signed-off-by: Kirill Shchetiniuk <kshcheti@redhat.com>
---
src/datatypes.h | 1 +
src/qemu/qemu_migration.c | 14 +++++---------
2 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/src/datatypes.h b/src/datatypes.h
index c5a7ece786..8dd4d87572 100644
--- a/src/datatypes.h
+++ b/src/datatypes.h
@@ -746,6 +746,7 @@ struct _virStream {
virFreeCallback ff;
};
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(virStream, virObjectUnref);
/**
* _virDomainCheckpoint
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index fd050641c7..5c9aa93ac1 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -5537,13 +5537,13 @@ qemuMigrationSrcPerformPeer2Peer2(virQEMUDriver *driver,
qemuMigrationParams *migParams)
{
virDomainPtr ddomain = NULL;
- char *uri_out = NULL;
- char *cookie = NULL;
- char *dom_xml = NULL;
+ g_autofree char *uri_out = NULL;
+ g_autofree char *cookie = NULL;
+ g_autofree char *dom_xml = NULL;
int cookielen = 0, ret;
virErrorPtr orig_err = NULL;
bool cancelled;
- virStreamPtr st = NULL;
+ g_autoptr(virStream) st = NULL;
unsigned long destflags;
VIR_DEBUG("driver=%p, sconn=%p, dconn=%p, vm=%p, dconnuri=%s, "
@@ -5589,7 +5589,7 @@ qemuMigrationSrcPerformPeer2Peer2(virQEMUDriver *driver,
if (qemuDomainObjExitRemote(vm, true) < 0)
goto cleanup;
}
- VIR_FREE(dom_xml);
+
if (ret == -1)
goto cleanup;
@@ -5653,11 +5653,7 @@ qemuMigrationSrcPerformPeer2Peer2(virQEMUDriver *driver,
ret = -1;
}
- virObjectUnref(st);
-
virErrorRestore(&orig_err);
- VIR_FREE(uri_out);
- VIR_FREE(cookie);
return ret;
}
--
2.49.0