]> xenbits.xensource.com Git - libvirt.git/commitdiff
util: usb: use VIR_AUTOPTR for aggregate types
authorSukrit Bhatnagar <skrtbhtngr@gmail.com>
Tue, 24 Jul 2018 15:52:26 +0000 (21:22 +0530)
committerErik Skultety <eskultet@redhat.com>
Fri, 27 Jul 2018 15:21:17 +0000 (17:21 +0200)
By making use of GNU C's cleanup attribute handled by the
VIR_AUTOPTR macro for declaring aggregate pointer variables,
majority of the calls to *Free functions can be dropped, which
in turn leads to getting rid of most of our cleanup sections.

Signed-off-by: Sukrit Bhatnagar <skrtbhtngr@gmail.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
src/util/virusb.c

index 47b407b7e5dbf612e9d3985bd279900641d06375..609d54836fc3e41ce4b719730fdcf6d860486458 100644 (file)
@@ -123,8 +123,9 @@ virUSBDeviceSearch(unsigned int vendor,
     bool found = false;
     char *ignore = NULL;
     struct dirent *de;
-    virUSBDeviceListPtr list = NULL, ret = NULL;
-    virUSBDevicePtr usb;
+    virUSBDeviceListPtr list = NULL;
+    virUSBDeviceListPtr ret = NULL;
+    VIR_AUTOPTR(virUSBDevice) usb = NULL;
     int direrr;
 
     if (!(list = virUSBDeviceListNew()))
@@ -173,13 +174,12 @@ virUSBDeviceSearch(unsigned int vendor,
         }
 
         usb = virUSBDeviceNew(found_bus, found_devno, vroot);
+
         if (!usb)
             goto cleanup;
 
-        if (virUSBDeviceListAdd(list, &usb) < 0) {
-            virUSBDeviceFree(usb);
+        if (virUSBDeviceListAdd(list, &usb) < 0)
             goto cleanup;
-        }
 
         if (found)
             break;
@@ -508,8 +508,7 @@ void
 virUSBDeviceListDel(virUSBDeviceListPtr list,
                     virUSBDevicePtr dev)
 {
-    virUSBDevicePtr ret = virUSBDeviceListSteal(list, dev);
-    virUSBDeviceFree(ret);
+    VIR_AUTOPTR(virUSBDevice) ret = virUSBDeviceListSteal(list, dev);
 }
 
 virUSBDevicePtr