VIR_STRDUP(net->model, "netfront") < 0)
goto cleanup;
- if (VIR_REALLOC_N(def->nets, def->nnets + 1) < 0)
+ if (VIR_APPEND_ELEMENT(def->nets, def->nnets, net) < 0)
goto cleanup;
- def->nets[def->nnets++] = net;
vif_index++;
}
}
goto error;
}
- if (VIR_REALLOC_N(def->sounds, def->nsounds+1) < 0) {
+ if (VIR_APPEND_ELEMENT(def->sounds, def->nsounds, sound) < 0) {
virDomainSoundDefFree(sound);
goto error;
}
- def->sounds[def->nsounds++] = sound;
offset = offset2 ? offset2 + 1 : NULL;
} while (offset);
}
dev->source.subsys.u.pci.addr.slot = slotID;
dev->source.subsys.u.pci.addr.function = funcID;
- if (VIR_REALLOC_N(def->hostdevs, def->nhostdevs+1) < 0)
+ if (VIR_APPEND_ELEMENT(def->hostdevs, def->nhostdevs, dev) < 0)
goto error;
-
- def->hostdevs[def->nhostdevs++] = dev;
}
return 0;
disk->bus = VIR_DOMAIN_DISK_BUS_IDE;
disk->readonly = true;
- if (VIR_REALLOC_N(def->disks, def->ndisks+1) < 0) {
+ if (VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk) < 0) {
virDomainDiskDefFree(disk);
goto error;
}
- def->disks[def->ndisks++] = disk;
}
}
}
disk->bus = VIR_DOMAIN_DISK_BUS_FDC;
- if (VIR_REALLOC_N(def->disks, def->ndisks+1) < 0) {
+ if (VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk) < 0) {
virDomainDiskDefFree(disk);
goto error;
}
- def->disks[def->ndisks++] = disk;
}
}
}
virDomainChrDefPtr chr;
if ((chr = xenParseSxprChar(tmp, tty)) == NULL)
goto error;
- if (VIR_REALLOC_N(def->serials, def->nserials+1) < 0) {
+ chr->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL;
+ chr->target.port = def->nserials + ports_skipped;
+ if (VIR_APPEND_ELEMENT(def->serials, def->nserials, chr) < 0) {
virDomainChrDefFree(chr);
goto error;
}
- chr->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL;
- chr->target.port = def->nserials + ports_skipped;
- def->serials[def->nserials++] = chr;
}
else
ports_skipped++;
virDomainChrDefPtr chr;
if ((chr = xenParseSxprChar(tmp, tty)) == NULL)
goto error;
- if (VIR_REALLOC_N(def->serials, def->nserials+1) < 0) {
+ chr->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL;
+ chr->target.port = 0;
+ if (VIR_APPEND_ELEMENT(def->serials, def->nserials, chr) < 0) {
virDomainChrDefFree(chr);
goto error;
}
- chr->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL;
- chr->target.port = 0;
- def->serials[def->nserials++] = chr;
}
}
/* XXX does XenD stuff parallel port tty info into xenstore somewhere ? */
if ((chr = xenParseSxprChar(tmp, NULL)) == NULL)
goto error;
- if (VIR_REALLOC_N(def->parallels, def->nparallels+1) < 0) {
+ chr->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_PARALLEL;
+ chr->target.port = 0;
+ if (VIR_APPEND_ELEMENT(def->parallels, def->nparallels, chr) < 0) {
virDomainChrDefFree(chr);
goto error;
}
- chr->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_PARALLEL;
- chr->target.port = 0;
- def->parallels[def->nparallels++] = chr;
}
} else if (def->id != 0) {
if (VIR_ALLOC_N(def->consoles, 1) < 0)
disk->shared = true;
/* Maintain list in sorted order according to target device name */
- if (VIR_REALLOC_N(def->disks, def->ndisks+1) < 0)
+ if (VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk) < 0)
goto cleanup;
- def->disks[def->ndisks++] = disk;
- disk = NULL;
skipdisk:
list = list->next;
disk->bus = VIR_DOMAIN_DISK_BUS_IDE;
disk->readonly = true;
- if (VIR_REALLOC_N(def->disks, def->ndisks+1) < 0)
+ if (VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk) < 0)
goto cleanup;
- def->disks[def->ndisks++] = disk;
- disk = NULL;
}
}
VIR_STRDUP(net->ifname, vifname) < 0)
goto cleanup;
- if (VIR_REALLOC_N(def->nets, def->nnets+1) < 0)
+ if (VIR_APPEND_ELEMENT(def->nets, def->nnets, net) < 0)
goto cleanup;
- def->nets[def->nnets++] = net;
- net = NULL;
skipnic:
list = list->next;
hostdev->source.subsys.u.pci.addr.slot = slotID;
hostdev->source.subsys.u.pci.addr.function = funcID;
- if (VIR_REALLOC_N(def->hostdevs, def->nhostdevs+1) < 0) {
+ if (VIR_APPEND_ELEMENT(def->hostdevs, def->nhostdevs, hostdev) < 0) {
virDomainHostdevDefFree(hostdev);
goto cleanup;
}
- def->hostdevs[def->nhostdevs++] = hostdev;
- hostdev = NULL;
skippci:
list = list->next;
if (!(chr = xenParseSxprChar(port, NULL)))
goto cleanup;
- if (VIR_REALLOC_N(def->serials, def->nserials+1) < 0) {
- virDomainChrDefFree(chr);
- goto cleanup;
- }
-
chr->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL;
chr->target.port = portnum;
- def->serials[def->nserials++] = chr;
- chr = NULL;
+ if (VIR_APPEND_ELEMENT(def->serials, def->nserials, chr) < 0) {
+ virDomainChrDefFree(chr);
+ goto cleanup;
+ }
list = list->next;
}