On Fri, Nov 06, 2009 at 04:28:06AM +0100, Matthias Bolte wrote: > --- > src/phyp/phyp_driver.c | 47 ++++++++++++++--------------------------------- > 1 files changed, 14 insertions(+), 33 deletions(-) > > diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c > index 43430a9..6263fd2 100644 > --- a/src/phyp/phyp_driver.c > +++ b/src/phyp/phyp_driver.c > @@ -1131,29 +1131,21 @@ phypDomainLookupByName(virConnectPtr conn, const char *lpar_name) > virDomainPtr dom = NULL; > int lpar_id = 0; > char *managed_system = phyp_driver->managed_system; > - unsigned char *lpar_uuid = NULL; > - > - if (VIR_ALLOC_N(lpar_uuid, VIR_UUID_BUFLEN) < 0) > - virReportOOMError(dom->conn); > + unsigned char lpar_uuid[VIR_UUID_BUFLEN]; > > lpar_id = phypGetLparID(session, managed_system, lpar_name, conn); > if (lpar_id == -1) > - goto err; > + return NULL; > > if (phypGetLparUUID(lpar_uuid, lpar_id, conn) == -1) > - goto err; > + return NULL; > > dom = virGetDomain(conn, lpar_name, lpar_uuid); > > if (dom) > dom->id = lpar_id; > > - VIR_FREE(lpar_uuid); > return dom; > - > - err: > - VIR_FREE(lpar_uuid); > - return NULL; > } > > static virDomainPtr > @@ -1165,10 +1157,7 @@ phypDomainLookupByID(virConnectPtr conn, int lpar_id) > virDomainPtr dom = NULL; > char *managed_system = phyp_driver->managed_system; > int exit_status = 0; > - unsigned char *lpar_uuid = NULL; > - > - if (VIR_ALLOC_N(lpar_uuid, VIR_UUID_BUFLEN) < 0) > - virReportOOMError(dom->conn); > + unsigned char lpar_uuid[VIR_UUID_BUFLEN]; > > char *lpar_name = phypGetLparNAME(session, managed_system, lpar_id, > conn); > @@ -1185,12 +1174,10 @@ phypDomainLookupByID(virConnectPtr conn, int lpar_id) > dom->id = lpar_id; > > VIR_FREE(lpar_name); > - VIR_FREE(lpar_uuid); > return dom; > > err: > VIR_FREE(lpar_name); > - VIR_FREE(lpar_uuid); > return NULL; > } > > @@ -1200,17 +1187,15 @@ phypDomainDumpXML(virDomainPtr dom, int flags) > ConnectionData *connection_data = dom->conn->networkPrivateData; > phyp_driverPtr phyp_driver = dom->conn->privateData; > LIBSSH2_SESSION *session = connection_data->session; > - virDomainDefPtr def = NULL; > - char *ret = NULL; > + virDomainDef def; > char *managed_system = phyp_driver->managed_system; > > - if (VIR_ALLOC(def) < 0) > - virReportOOMError(dom->conn); > + memset(&def, 0, sizeof(virDomainDef)); > > - def->virtType = VIR_DOMAIN_VIRT_PHYP; > - def->id = dom->id; > + def.virtType = VIR_DOMAIN_VIRT_PHYP; > + def.id = dom->id; > > - char *lpar_name = phypGetLparNAME(session, managed_system, def->id, > + char *lpar_name = phypGetLparNAME(session, managed_system, def.id, > dom->conn); > > if (lpar_name == NULL) { > @@ -1218,36 +1203,32 @@ phypDomainDumpXML(virDomainPtr dom, int flags) > goto err; > } > > - if (phypGetLparUUID(def->uuid, dom->id, dom->conn) == -1) { > + if (phypGetLparUUID(def.uuid, dom->id, dom->conn) == -1) { > VIR_ERROR("%s", "Unable to generate random uuid."); > goto err; > } > > - if ((def->maxmem = > + if ((def.maxmem = > phypGetLparMem(dom->conn, managed_system, dom->id, 0)) == 0) { > VIR_ERROR("%s", "Unable to determine domain's max memory."); > goto err; > } > > - if ((def->memory = > + if ((def.memory = > phypGetLparMem(dom->conn, managed_system, dom->id, 1)) == 0) { > VIR_ERROR("%s", "Unable to determine domain's memory."); > goto err; > } > > - if ((def->vcpus = > + if ((def.vcpus = > phypGetLparCPU(dom->conn, managed_system, dom->id)) == 0) { > VIR_ERROR("%s", "Unable to determine domain's CPU."); > goto err; > } > > - ret = virDomainDefFormat(dom->conn, def, flags); > - > - virDomainDefFree(def); > - return ret; > + return virDomainDefFormat(dom->conn, &def, flags); > > err: > - virDomainDefFree(def); > return NULL; > } > ACK, UUID strings are short enough to be allocated on stack ! Simplifies the code and avoid mistakes, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list