On 05/26/2010 10:31 AM, Matthias Bolte wrote: > Eliminate almost all backward jumps by replacing this common pattern: > > --- > > I've split this 200kb patch into two 100kb parts. More of the same mechanical changes. > > + result = 0; > + > cleanup: > VIR_FREE(prefix); > VIR_FREE(deviceType); > @@ -1666,13 +1672,12 @@ esxVMX_ParseDisk(esxVI_Context *ctx, virConfPtr conf, int device, int bus, > > return result; > > - failure: > - result = -1; > - > ignore: > virDomainDiskDefFree(*def); > *def = NULL; > > + result = 0; > + > goto cleanup; This looks fishy - failure used to fall through to ignore, but now you lose the virDomainDiskDefFree. > + result = 0; > + > cleanup: > VIR_FREE(connectionType); > VIR_FREE(addressType); > @@ -1891,13 +1898,12 @@ esxVMX_ParseEthernet(virConfPtr conf, int controller, virDomainNetDefPtr *def) > > return result; > > - failure: > - result = -1; > - > ignore: > virDomainNetDefFree(*def); > *def = NULL; > > + result = 0; > + > goto cleanup; And again. > > + result = 0; > + > cleanup: > VIR_FREE(fileType); > VIR_FREE(fileName); > > return result; > > - failure: > - result = -1; > - > ignore: > virDomainChrDefFree(*def); > *def = NULL; > > + result = 0; > + > goto cleanup; And again. > > + result = 0; > + > cleanup: > VIR_FREE(fileType); > VIR_FREE(fileName); > > return result; > > - failure: > - result = -1; > - > ignore: > virDomainChrDefFree(*def); > *def = NULL; > > + result = 0; > + > goto cleanup; And again. ACK, once you either figure out whether that idiom was safe, or fix those four cases. -- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list