[libvirt] [PATCH 3/7] Use size_t for ndevice in pool source definition

2014-03-12 Thread Ján Tomko
This allows it to be used by the VIR_*_ELEMENT macros.

Also use them for parsing the definiton and remove the redundant
freeing of 'nodeset' before jumping to the cleanup label.
---
 src/conf/storage_conf.c | 23 ++-
 src/conf/storage_conf.h |  2 +-
 2 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
index 9c2962f..39fb416 100644
--- a/src/conf/storage_conf.c
+++ b/src/conf/storage_conf.c
@@ -642,23 +642,20 @@ virStoragePoolDefParseSource(xmlXPathContextPtr ctxt,
 if (nsource  0)
 goto cleanup;
 
-if (nsource  0) {
-if (VIR_ALLOC_N(source-devices, nsource)  0) {
-VIR_FREE(nodeset);
+for (i = 0; i  nsource; i++) {
+virStoragePoolSourceDevice dev = { .path = NULL };
+dev.path = virXMLPropString(nodeset[i], path);
+
+if (dev.path == NULL) {
+virReportError(VIR_ERR_XML_ERROR, %s,
+   _(missing storage pool source device path));
 goto cleanup;
 }
 
-for (i = 0; i  nsource; i++) {
-char *path = virXMLPropString(nodeset[i], path);
-if (path == NULL) {
-VIR_FREE(nodeset);
-virReportError(VIR_ERR_XML_ERROR, %s,
-   _(missing storage pool source device path));
-goto cleanup;
-}
-source-devices[i].path = path;
+if (VIR_APPEND_ELEMENT(source-devices, source-ndevice, dev)  0) {
+virStoragePoolSourceDeviceClear(dev);
+goto cleanup;
 }
-source-ndevice = nsource;
 }
 
 source-dir = virXPathString(string(./dir/@path), ctxt);
diff --git a/src/conf/storage_conf.h b/src/conf/storage_conf.h
index 636c9aa..e410f41 100644
--- a/src/conf/storage_conf.h
+++ b/src/conf/storage_conf.h
@@ -266,7 +266,7 @@ struct _virStoragePoolSource {
 virStoragePoolSourceHostPtr hosts;
 
 /* And either one or more devices ... */
-int ndevice;
+size_t ndevice;
 virStoragePoolSourceDevicePtr devices;
 
 /* Or a directory */
-- 
1.8.3.2

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH 3/7] Use size_t for ndevice in pool source definition

2014-03-12 Thread Daniel P. Berrange
On Wed, Mar 12, 2014 at 02:08:13PM +0100, Ján Tomko wrote:
 This allows it to be used by the VIR_*_ELEMENT macros.
 
 Also use them for parsing the definiton and remove the redundant
 freeing of 'nodeset' before jumping to the cleanup label.
 ---
  src/conf/storage_conf.c | 23 ++-
  src/conf/storage_conf.h |  2 +-
  2 files changed, 11 insertions(+), 14 deletions(-)

ACK


Regards,
Daniel
-- 
|: http://berrange.com  -o-http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org  -o- http://virt-manager.org :|
|: http://autobuild.org   -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org   -o-   http://live.gnome.org/gtk-vnc :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list