virCPUDef *
virCPUDefCopy(const virCPUDef *cpu)
{
- g_autoptr(virCPUDef) copy = NULL;
-
- if (!cpu)
- return NULL;
-
- copy = virCPUDefCopyWithoutModel(cpu);
+ g_autoptr(virCPUDef) copy = virCPUDefCopyWithoutModel(cpu);
virCPUDefCopyModel(copy, cpu, false);
bool keepVendor);
virCPUDef *
-virCPUDefCopy(const virCPUDef *cpu);
+virCPUDefCopy(const virCPUDef *cpu)
+ ATTRIBUTE_NONNULL(1);
virCPUDef *
virCPUDefCopyWithoutModel(const virCPUDef *cpu)
size_t i;
/* Ensure existing configurations are handled correctly */
- if (!(cpu = virCPUDefCopy(other)) ||
- virCPUppc64ConvertLegacy(cpu) < 0)
+ if (!other)
+ return VIR_CPU_COMPARE_ERROR;
+
+ cpu = virCPUDefCopy(other);
+
+ if (virCPUppc64ConvertLegacy(cpu) < 0)
return VIR_CPU_COMPARE_ERROR;
if (cpu->arch != VIR_ARCH_NONE) {
virCPUx86ExpandFeatures(virCPUDef *cpu)
{
virCPUx86Map *map;
- g_autoptr(virCPUDef) expanded = NULL;
+ g_autoptr(virCPUDef) expanded = virCPUDefCopy(cpu);
g_autoptr(virCPUx86Model) model = NULL;
bool host = cpu->type == VIR_CPU_TYPE_HOST;
size_t i;
if (!(map = virCPUx86GetMap()))
return -1;
- if (!(expanded = virCPUDefCopy(cpu)))
- return -1;
-
virCPUDefFreeFeatures(expanded);
if (!(model = x86ModelFind(map, cpu->model))) {
!(dst->info = qemuMonitorCPUModelInfoCopy(src->info)))
return -1;
- if (src->reported &&
- !(dst->reported = virCPUDefCopy(src->reported)))
- return -1;
+ if (src->reported)
+ dst->reported = virCPUDefCopy(src->reported);
- if (src->migratable &&
- !(dst->migratable = virCPUDefCopy(src->migratable)))
- return -1;
+ if (src->migratable)
+ dst->migratable = virCPUDefCopy(src->migratable);
- if (src->full &&
- !(dst->full = virCPUDefCopy(src->full)))
- return -1;
+ if (src->full)
+ dst->full = virCPUDefCopy(src->full);
return 0;
}
if (!(fullCPU = virQEMUCapsProbeHostCPU(qemuCaps->arch, NULL)))
goto error;
- if (!(cpuExpanded = virCPUDefCopy(cpu)) ||
- virCPUExpandFeatures(qemuCaps->arch, cpuExpanded) < 0)
+ cpuExpanded = virCPUDefCopy(cpu);
+
+ if (virCPUExpandFeatures(qemuCaps->arch, cpuExpanded) < 0)
goto error;
for (i = 0; i < cpuExpanded->nfeatures; i++) {
if (mig->cpu)
return 0;
- if (!(mig->cpu = virCPUDefCopy(vm->def->cpu)))
- return -1;
+ mig->cpu = virCPUDefCopy(vm->def->cpu);
if (qemuDomainMakeCPUMigratable(mig->cpu) < 0)
return -1;
!def->cpu->model))
return 0;
- if (!(orig = virCPUDefCopy(def->cpu)))
- return -1;
+ orig = virCPUDefCopy(def->cpu);
if ((rc = virCPUUpdateLive(def->os.arch, def->cpu, enabled, disabled)) < 0) {
return -1;
memset(driver, 0, sizeof(*driver));
- if (!(cpuDefault = virCPUDefCopy(&cpuDefaultData)) ||
- !(cpuHaswell = virCPUDefCopy(&cpuHaswellData)) ||
- !(cpuPower8 = virCPUDefCopy(&cpuPower8Data)) ||
- !(cpuPower9 = virCPUDefCopy(&cpuPower9Data)) ||
- !(cpuPower10 = virCPUDefCopy(&cpuPower10Data)))
- return -1;
+ cpuDefault = virCPUDefCopy(&cpuDefaultData);
+ cpuHaswell = virCPUDefCopy(&cpuHaswellData);
+ cpuPower8 = virCPUDefCopy(&cpuPower8Data);
+ cpuPower9 = virCPUDefCopy(&cpuPower9Data);
+ cpuPower10 = virCPUDefCopy(&cpuPower10Data);
if (virMutexInit(&driver->lock) < 0)
return -1;