]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
src/parallels: Utilize more of VIR_(APPEND|INSERT|DELETE)_ELEMENT
authorMichal Privoznik <mprivozn@redhat.com>
Fri, 7 Mar 2014 08:33:31 +0000 (09:33 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 10 Mar 2014 12:45:10 +0000 (13:45 +0100)
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
src/parallels/parallels_driver.c
src/parallels/parallels_storage.c

index 33260ef79941f606199acd885c039db5471e0431..2cba3ca2552fddcf2c8b2320d517664cef4f12e0 100644 (file)
@@ -231,11 +231,9 @@ parallelsAddSerialInfo(virDomainChrDefPtr **serials, size_t *nserials,
     if (parallelsGetSerialInfo(chr, key, value))
         goto cleanup;
 
-    if (VIR_REALLOC_N(*serials, *nserials + 1) < 0)
+    if (VIR_APPEND_ELEMENT(*serials, *nserials, chr) < 0)
         goto cleanup;
 
-    (*serials)[(*nserials)++] = chr;
-
     return 0;
 
   cleanup:
@@ -273,11 +271,9 @@ parallelsAddVideoInfo(virDomainDefPtr def, virJSONValuePtr value)
     if (VIR_ALLOC(accel) < 0)
         goto error;
 
-    if (VIR_REALLOC_N(def->videos, def->nvideos + 1) < 0)
+    if (VIR_APPEND_ELEMENT_COPY(def->videos, def->nvideos, video) < 0)
         goto error;
 
-    def->videos[def->nvideos++] = video;
-
     video->type = VIR_DOMAIN_VIDEO_TYPE_VGA;
     video->vram = mem << 20;
     video->heads = 1;
@@ -386,11 +382,9 @@ parallelsAddHddInfo(virDomainDefPtr def, const char *key, virJSONValuePtr value)
     if (parallelsGetHddInfo(def, disk, key, value))
         goto error;
 
-    if (VIR_REALLOC_N(def->disks, def->ndisks + 1) < 0)
+    if (VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk) < 0)
         goto error;
 
-    def->disks[def->ndisks++] = disk;
-
     return 0;
 
 error:
@@ -625,10 +619,9 @@ parallelsAddVNCInfo(virDomainDefPtr def, virJSONValuePtr jobj_root)
 
     gr->listens[0].type = VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS;
 
-    if (VIR_REALLOC_N(def->graphics, def->ngraphics + 1) < 0)
+    if (VIR_APPEND_ELEMENT(def->graphics, def->ngraphics, gr) < 0)
         goto cleanup;
 
-    def->graphics[def->ngraphics++] = gr;
     return 0;
 
   cleanup:
index bb5066f5290c5bf8b96639b770f644c501fd586b..b5a1a4c6051ce8c10c5a8e907b0ae8e6b32b38c2 100644 (file)
@@ -311,11 +311,9 @@ static int parallelsAddDiskVolume(virStoragePoolObjPtr pool,
     if (VIR_STRDUP(def->key, def->target.path) < 0)
         goto error;
 
-    if (VIR_REALLOC_N(pool->volumes.objs, pool->volumes.count + 1) < 0)
+    if (VIR_APPEND_ELEMENT(pool->volumes.objs, pool->volumes.count, def) < 0)
         goto error;
 
-    pool->volumes.objs[pool->volumes.count++] = def;
-
     return 0;
 no_memory:
     virReportOOMError();
@@ -1229,9 +1227,6 @@ parallelsStorageVolDefineXML(virStoragePoolObjPtr pool,
         }
     }
 
-    if (VIR_REALLOC_N(pool->volumes.objs, pool->volumes.count + 1) < 0)
-        goto cleanup;
-
     if (virAsprintf(&privvol->target.path, "%s/%s",
                     pool->def->target.path, privvol->name) < 0)
         goto cleanup;
@@ -1255,7 +1250,9 @@ parallelsStorageVolDefineXML(virStoragePoolObjPtr pool,
                                 pool->def->allocation);
     }
 
-    pool->volumes.objs[pool->volumes.count++] = privvol;
+    if (VIR_APPEND_ELEMENT_COPY(pool->volumes.objs,
+                                pool->volumes.count, privvol) < 0)
+        goto cleanup;
 
     ret = privvol;
     privvol = NULL;
@@ -1362,10 +1359,6 @@ parallelsStorageVolCreateXMLFrom(virStoragePoolPtr pool,
     privpool->def->available = (privpool->def->capacity -
                                 privpool->def->allocation);
 
-    if (VIR_REALLOC_N(privpool->volumes.objs,
-                      privpool->volumes.count + 1) < 0)
-        goto cleanup;
-
     if (virAsprintf(&privvol->target.path, "%s/%s",
                     privpool->def->target.path, privvol->name) == -1)
         goto cleanup;
@@ -1377,7 +1370,9 @@ parallelsStorageVolCreateXMLFrom(virStoragePoolPtr pool,
     privpool->def->available = (privpool->def->capacity -
                                 privpool->def->allocation);
 
-    privpool->volumes.objs[privpool->volumes.count++] = privvol;
+    if (VIR_APPEND_ELEMENT_COPY(privpool->volumes.objs,
+                                privpool->volumes.count, privvol) < 0)
+        goto cleanup;
 
     ret = virGetStorageVol(pool->conn, privpool->def->name,
                            privvol->name, privvol->key,
@@ -1416,18 +1411,7 @@ int parallelsStorageVolDefRemove(virStoragePoolObjPtr privpool,
 
             virStorageVolDefFree(privvol);
 
-            if (i < (privpool->volumes.count - 1))
-                memmove(privpool->volumes.objs + i,
-                        privpool->volumes.objs + i + 1,
-                        sizeof(*(privpool->volumes.objs)) *
-                        (privpool->volumes.count - (i + 1)));
-
-            if (VIR_REALLOC_N(privpool->volumes.objs,
-                              privpool->volumes.count - 1) < 0) {
-                ;   /* Failure to reduce memory allocation isn't fatal */
-            }
-            privpool->volumes.count--;
-
+            VIR_DELETE_ELEMENT(privpool->volumes.objs, i, privpool->volumes.count);
             break;
         }
     }