On 9/26/19 12:12 PM, Michal Privoznik wrote:
There are several variables which could be automatically freed
upon return from the function. I'm not changing @tmpPaths (which
is a string list) because it is going to be removed in next
commit.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/qemu/qemu_domain.c | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
With the appropriate GLib adjustments:
Reviewed-by: Cole Robinson <crobinso(a)redhat.com>
I see you've already made adjustments in your branch. If a v3 is coming
then I endorse pushing some of these cleanup pieces out of band, just to
reduce the patch count.
- Cole
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index c903750fa0..d8d2f72bcc 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -12866,14 +12866,14 @@ qemuDomainGetHostdevPath(virDomainDefPtr def,
virDomainHostdevSubsysSCSIPtr scsisrc = &dev->source.subsys.u.scsi;
virDomainHostdevSubsysSCSIVHostPtr hostsrc =
&dev->source.subsys.u.scsi_host;
virDomainHostdevSubsysMediatedDevPtr mdevsrc = &dev->source.subsys.u.mdev;
- virPCIDevicePtr pci = NULL;
- virUSBDevicePtr usb = NULL;
- virSCSIDevicePtr scsi = NULL;
- virSCSIVHostDevicePtr host = NULL;
- char *tmpPath = NULL;
+ VIR_AUTOPTR(virPCIDevice) pci = NULL;
+ VIR_AUTOPTR(virUSBDevice) usb = NULL;
+ VIR_AUTOPTR(virSCSIDevice) scsi = NULL;
+ VIR_AUTOPTR(virSCSIVHostDevice) host = NULL;
+ VIR_AUTOFREE(char *) tmpPath = NULL;
bool includeVFIO = false;
char **tmpPaths = NULL;
- int *tmpPerms = NULL;
+ VIR_AUTOFREE(int *) tmpPerms = NULL;
size_t tmpNpaths = 0;
int perm = 0;
@@ -13004,12 +13004,6 @@ qemuDomainGetHostdevPath(virDomainDefPtr def,
ret = 0;
cleanup:
virStringListFreeCount(tmpPaths, tmpNpaths);
- VIR_FREE(tmpPerms);
- virPCIDeviceFree(pci);
- virUSBDeviceFree(usb);
- virSCSIDeviceFree(scsi);
- virSCSIVHostDeviceFree(host);
- VIR_FREE(tmpPath);
return ret;
}
- Cole