On Sat, Jul 21, 2018 at 05:37:02PM +0530, Sukrit Bhatnagar wrote: > 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@xxxxxxxxx> > --- > src/util/virscsivhost.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/src/util/virscsivhost.c b/src/util/virscsivhost.c > index ef216b3..3cd421e 100644 > --- a/src/util/virscsivhost.c > +++ b/src/util/virscsivhost.c > @@ -109,8 +109,7 @@ void > virSCSIVHostDeviceListDel(virSCSIVHostDeviceListPtr list, > virSCSIVHostDevicePtr dev) > { > - virSCSIVHostDevicePtr tmp = virSCSIVHostDeviceListSteal(list, dev); > - virSCSIVHostDeviceFree(tmp); > + VIR_AUTOPTR(virSCSIVHostDevice) tmp = virSCSIVHostDeviceListSteal(list, dev); > } > > > @@ -271,13 +270,11 @@ virSCSIVHostDeviceNew(const char *name) > > VIR_DEBUG("%s: initialized", dev->name); > > - cleanup: > return dev; > > error: > virSCSIVHostDeviceFree(dev); > - dev = NULL; > - goto cleanup; > + return NULL; If you declared @dev as VIR_AUTOPTR along with a non-VIR_AUTOPTR @ret and then used VIR_STEAL_PTR and returned @ret instead, then you could get rid of all the goto labels in ^this function. With that tiny tweak: Reviewed-by: Erik Skultety <eskultet@xxxxxxxxxx> -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list