Extract the pointer and use a local variable throughout the function.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/conf/checkpoint_conf.c | 29 +++++++++++++++--------------
1 file changed, 15 insertions(+), 14 deletions(-)
diff --git a/src/conf/checkpoint_conf.c b/src/conf/checkpoint_conf.c
index 914deb41f2..2375c78b92 100644
--- a/src/conf/checkpoint_conf.c
+++ b/src/conf/checkpoint_conf.c
@@ -292,25 +292,26 @@ virDomainCheckpointCompareDiskIndex(const void *a, const void *b)
int
virDomainCheckpointAlignDisks(virDomainCheckpointDefPtr def)
{
+ virDomainDefPtr domdef = def->parent.dom;
g_autoptr(virBitmap) map = NULL;
size_t i;
int ndisks;
int checkpoint_default = VIR_DOMAIN_CHECKPOINT_TYPE_NONE;
- if (!def->parent.dom) {
+ if (!domdef) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("missing domain in checkpoint"));
return -1;
}
- if (def->ndisks > def->parent.dom->ndisks) {
+ if (def->ndisks > domdef->ndisks) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("too many disk checkpoint requests for domain"));
return -1;
}
/* Unlikely to have a guest without disks but technically possible. */
- if (!def->parent.dom->ndisks) {
+ if (!domdef->ndisks) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("domain must have at least one disk to perform
checkpoints"));
return -1;
@@ -321,12 +322,12 @@ virDomainCheckpointAlignDisks(virDomainCheckpointDefPtr def)
if (!def->ndisks)
checkpoint_default = VIR_DOMAIN_CHECKPOINT_TYPE_BITMAP;
- map = virBitmapNew(def->parent.dom->ndisks);
+ map = virBitmapNew(domdef->ndisks);
/* Double check requested disks. */
for (i = 0; i < def->ndisks; i++) {
virDomainCheckpointDiskDefPtr disk = &def->disks[i];
- int idx = virDomainDiskIndexByName(def->parent.dom, disk->name, false);
+ int idx = virDomainDiskIndexByName(domdef, disk->name, false);
if (idx < 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
@@ -340,8 +341,8 @@ virDomainCheckpointAlignDisks(virDomainCheckpointDefPtr def)
disk->name);
return -1;
}
- if ((virStorageSourceIsEmpty(def->parent.dom->disks[idx]->src) ||
- def->parent.dom->disks[idx]->src->readonly) &&
+ if ((virStorageSourceIsEmpty(domdef->disks[idx]->src) ||
+ domdef->disks[idx]->src->readonly) &&
disk->type != VIR_DOMAIN_CHECKPOINT_TYPE_NONE) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("disk '%s' is empty or readonly"),
@@ -351,30 +352,30 @@ virDomainCheckpointAlignDisks(virDomainCheckpointDefPtr def)
ignore_value(virBitmapSetBit(map, idx));
disk->idx = idx;
- if (STRNEQ(disk->name, def->parent.dom->disks[idx]->dst)) {
+ if (STRNEQ(disk->name, domdef->disks[idx]->dst)) {
VIR_FREE(disk->name);
- disk->name = g_strdup(def->parent.dom->disks[idx]->dst);
+ disk->name = g_strdup(domdef->disks[idx]->dst);
}
}
/* Provide defaults for all remaining disks. */
ndisks = def->ndisks;
if (VIR_EXPAND_N(def->disks, def->ndisks,
- def->parent.dom->ndisks - def->ndisks) < 0)
+ domdef->ndisks - def->ndisks) < 0)
return -1;
- for (i = 0; i < def->parent.dom->ndisks; i++) {
+ for (i = 0; i < domdef->ndisks; i++) {
virDomainCheckpointDiskDefPtr disk;
if (virBitmapIsBitSet(map, i))
continue;
disk = &def->disks[ndisks++];
- disk->name = g_strdup(def->parent.dom->disks[i]->dst);
+ disk->name = g_strdup(domdef->disks[i]->dst);
disk->idx = i;
/* Don't checkpoint empty or readonly drives */
- if (virStorageSourceIsEmpty(def->parent.dom->disks[i]->src) ||
- def->parent.dom->disks[i]->src->readonly)
+ if (virStorageSourceIsEmpty(domdef->disks[i]->src) ||
+ domdef->disks[i]->src->readonly)
disk->type = VIR_DOMAIN_CHECKPOINT_TYPE_NONE;
else
disk->type = checkpoint_default;
--
2.28.0