
On 05/26/2010 10:30 AM, Matthias Bolte wrote:
Eliminate almost all backward jumps by replacing this common pattern:
int some_random_function(void) { int result = 0; ...
cleanup: <unconditional cleanup code> return result;
failure: <cleanup code in case of an error> result = -1; goto cleanup }
with this simpler pattern:
int some_random_function(void) { int result = -1; ... result = 0;
cleanup: if (result < 0) { <cleanup code in case of an error> }
<unconditional cleanup code> return result; }
Mostly mechanical, according to that pattern.
@@ -1786,21 +1733,17 @@ esxDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info) esxVI_LookupVirtualMachineByUuid(priv->host, domain->uuid, propertyNameList, &virtualMachine, esxVI_Occurrence_RequiredItem) < 0) { - goto failure; + goto cleanup; }
info->state = VIR_DOMAIN_NOSTATE; - info->maxMem = 0; - info->memory = 0; - info->nrVirtCpu = 0; - info->cpuTime = 0; /* FIXME */
I didn't quite follow this deletion just from the patch itself; are these values not valid if info->state is VIR_DOMAIN_NOSTATE?
@@ -2219,6 +2158,10 @@ esxDomainDumpXML(virDomainPtr domain, int flags) }
cleanup: + if (url == NULL) { + virBufferFreeAndReset(&buffer); + } + esxVI_String_Free(&propertyNameList); esxVI_ObjectContent_Free(&virtualMachine); VIR_FREE(datastoreName); @@ -2229,12 +2172,6 @@ esxDomainDumpXML(virDomainPtr domain, int flags) virDomainDefFree(def);
return xml; - - failure: - virBufferFreeAndReset(&buffer); - VIR_FREE(xml);
Did we lose a VIR_FREE(xml) on this conversion? Or can we guarantee that xml is NULL if url is NULL? ACK, assuming you can either answer those questions or tweak the code to fix them. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org