[libvirt] [PATCH 05/12] conf: use VIR_DELETE_ELEMENTS_N to remove devices from domain lists

Laine Stump laine at laine.org
Sat Oct 20 09:20:29 UTC 2012


---
 src/conf/domain_conf.c | 68 +++++---------------------------------------------
 1 file changed, 6 insertions(+), 62 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index dda37fd..2a9dd80 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -7830,19 +7830,7 @@ virDomainHostdevRemove(virDomainDefPtr def, size_t i)
 {
     virDomainHostdevDefPtr hostdev = def->hostdevs[i];
 
-    if (def->nhostdevs > 1) {
-        memmove(def->hostdevs + i,
-                def->hostdevs + i + 1,
-                sizeof(*def->hostdevs) *
-                (def->nhostdevs - (i + 1)));
-        def->nhostdevs--;
-        if (VIR_REALLOC_N(def->hostdevs, def->nhostdevs) < 0) {
-            /* ignore, harmless */
-        }
-    } else {
-        VIR_FREE(def->hostdevs);
-        def->nhostdevs = 0;
-    }
+    ignore_value(VIR_DELETE_ELEMENTS_N(def->hostdevs, i, def->nhostdevs, 1));
     return hostdev;
 }
 
@@ -8012,19 +8000,7 @@ virDomainDiskRemove(virDomainDefPtr def, size_t i)
 {
     virDomainDiskDefPtr disk = def->disks[i];
 
-    if (def->ndisks > 1) {
-        memmove(def->disks + i,
-                def->disks + i + 1,
-                sizeof(*def->disks) *
-                (def->ndisks - (i + 1)));
-        def->ndisks--;
-        if (VIR_REALLOC_N(def->disks, def->ndisks) < 0) {
-            /* ignore, harmless */
-        }
-    } else {
-        VIR_FREE(def->disks);
-        def->ndisks = 0;
-    }
+    ignore_value(VIR_DELETE_ELEMENTS_N(def->disks, i, def->ndisks, 1));
     return disk;
 }
 
@@ -8080,18 +8056,7 @@ virDomainNetRemove(virDomainDefPtr def, size_t i)
             }
         }
     }
-    if (def->nnets > 1) {
-        memmove(def->nets + i,
-                def->nets + i + 1,
-                sizeof(*def->nets) * (def->nnets - (i + 1)));
-        def->nnets--;
-        if (VIR_REALLOC_N(def->nets, def->nnets) < 0) {
-            /* ignore harmless */
-        }
-    } else {
-        VIR_FREE(def->nets);
-        def->nnets = 0;
-    }
+    ignore_value(VIR_DELETE_ELEMENTS_N(def->nets, i, def->nnets, 1));
     return net;
 }
 
@@ -8179,20 +8144,8 @@ virDomainControllerRemove(virDomainDefPtr def, size_t i)
 {
     virDomainControllerDefPtr controller = def->controllers[i];
 
-    if (def->ncontrollers > 1) {
-        memmove(def->controllers + i,
-                def->controllers + i + 1,
-                sizeof(*def->controllers) *
-                (def->ncontrollers - (i + 1)));
-        def->ncontrollers--;
-        if (VIR_REALLOC_N(def->controllers, def->ncontrollers) < 0) {
-            /* ignore, harmless */
-        }
-    } else {
-        VIR_FREE(def->controllers);
-        def->ncontrollers = 0;
-    }
-
+    ignore_value(VIR_DELETE_ELEMENTS_N(def->controllers, i,
+                                       def->ncontrollers, 1));
     return controller;
 }
 
@@ -8254,16 +8207,7 @@ virDomainLeaseRemoveAt(virDomainDefPtr def, size_t i)
 
     virDomainLeaseDefPtr lease = def->leases[i];
 
-    if (def->nleases > 1) {
-        memmove(def->leases + i,
-                def->leases + i + 1,
-                sizeof(*def->leases) *
-                (def->nleases - (i + 1)));
-        VIR_SHRINK_N(def->leases, def->nleases, 1);
-    } else {
-        VIR_FREE(def->leases);
-        def->nleases = 0;
-    }
+    ignore_value(VIR_DELETE_ELEMENTS_N(def->leases, i, def->nleases, 1));
     return lease;
 }
 
-- 
1.7.11.7




More information about the libvir-list mailing list