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 <eskul...@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb...@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

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to