
On 10/16/19 10:54 PM, Daniel Henrique Barboza wrote:
String and other scalar pointers an be auto-unref, sparing us a VIR_FREE() call.
This patch uses g_autofree whenever possible with strings and other scalar pointer types.
Suggested-by: Erik Skultety <eskultet@redhat.com> Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com> --- src/qemu/qemu_driver.c | 203 ++++++++++++++--------------------------- 1 file changed, 68 insertions(+), 135 deletions(-)
@@ -3300,7 +3295,7 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver, int compressed, const char *compressedpath, const char *xmlin, unsigned int flags) { - char *xml = NULL; + g_autofree char *xml = NULL; bool was_running = false; int ret = -1; virObjectEventPtr event = NULL; @@ -3381,7 +3376,6 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver, if (!(data = virQEMUSaveDataNew(xml, cookie, was_running, compressed, driver->xmlopt))) goto endjob; - xml = NULL;
No, this line has to be here. The point is that virQEMUSaveDataNew() takes ownership of @xml (in a very clumsy way though), so qemuDomainSaveInternal() has to refrain from freeing it. Setting it to NULL is how we achieve that.
ret = qemuDomainSaveMemory(driver, vm, path, data, compressedpath, flags, QEMU_ASYNC_JOB_SAVE);
Michal