{
g_autoptr(virCPUDef) copy = NULL;
- if (!cpu)
- return NULL;
-
copy = virCPUDefNew();
copy->type = cpu->type;
copy->mode = cpu->mode;
{
g_autoptr(virCPUDef) copy = NULL;
- if (!(copy = virCPUDefCopyWithoutModel(cpu)))
+ if (!cpu)
return NULL;
+ copy = virCPUDefCopyWithoutModel(cpu);
+
virCPUDefCopyModel(copy, cpu, false);
return g_steal_pointer(©);
virCPUDefCopy(const virCPUDef *cpu);
virCPUDef *
-virCPUDefCopyWithoutModel(const virCPUDef *cpu);
+virCPUDefCopyWithoutModel(const virCPUDef *cpu)
+ ATTRIBUTE_NONNULL(1);
int
virCPUDefParseXMLString(const char *xml,
const virCPUDef *host,
bool relative)
{
- g_autoptr(virCPUDef) updated = NULL;
+ g_autoptr(virCPUDef) updated = virCPUDefCopyWithoutModel(guest);
if (!relative || guest->mode != VIR_CPU_MODE_HOST_MODEL)
return 0;
return -1;
}
- if (!(updated = virCPUDefCopyWithoutModel(guest)))
- return -1;
-
updated->mode = VIR_CPU_MODE_CUSTOM;
virCPUDefCopyModel(updated, host, true);
const virCPUDef *host,
bool relative)
{
- g_autoptr(virCPUDef) updated = NULL;
+ g_autoptr(virCPUDef) updated = virCPUDefCopyWithoutModel(guest);
size_t i;
if (!relative)
return -1;
}
- if (!(updated = virCPUDefCopyWithoutModel(guest)))
- return -1;
-
updated->mode = VIR_CPU_MODE_CUSTOM;
virCPUDefCopyModel(updated, host, true);
x86UpdateHostModel(virCPUDef *guest,
const virCPUDef *host)
{
- g_autoptr(virCPUDef) updated = NULL;
+ g_autoptr(virCPUDef) updated = virCPUDefCopyWithoutModel(host);
size_t i;
- if (!(updated = virCPUDefCopyWithoutModel(host)))
- return -1;
-
updated->type = VIR_CPU_TYPE_GUEST;
updated->mode = VIR_CPU_MODE_CUSTOM;
virCPUDefCopyModel(updated, host, true);
virCPUx86Translate(virCPUDef *cpu,
virDomainCapsCPUModels *models)
{
- g_autoptr(virCPUDef) translated = NULL;
+ g_autoptr(virCPUDef) translated = virCPUDefCopyWithoutModel(cpu);
virCPUx86Map *map;
g_autoptr(virCPUx86Model) model = NULL;
size_t i;
return -1;
}
- if (!(translated = virCPUDefCopyWithoutModel(cpu)))
- return -1;
-
if (x86Decode(translated, &model->data, models, NULL, false) < 0)
return -1;
if (!(map = virCPUx86GetMap()))
return NULL;
- if (!(copy = virCPUDefCopyWithoutModel(cpu)))
+ if (!cpu)
return NULL;
+ copy = virCPUDefCopyWithoutModel(cpu);
virCPUDefCopyModelFilter(copy, cpu, false, x86FeatureFilterMigratable, map);
return g_steal_pointer(©);
if (virCPUDefFindFeature(vm->def->cpu, "cmt")) {
g_autoptr(virCPUDef) fixedCPU = virCPUDefCopyWithoutModel(vm->def->cpu);
- if (!fixedCPU)
- return -1;
-
virCPUDefCopyModelFilter(fixedCPU, vm->def->cpu, false,
virQEMUCapsCPUFilterFeatures, &arch);
if (virCPUDefFindFeature(*origCPU, "cmt")) {
g_autoptr(virCPUDef) fixedOrig = virCPUDefCopyWithoutModel(*origCPU);
- if (!fixedOrig)
- return -1;
-
virCPUDefCopyModelFilter(fixedOrig, *origCPU, false,
virQEMUCapsCPUFilterFeatures, &arch);
!!(flags & VIR_CONNECT_BASELINE_CPU_MIGRATABLE))))
goto cleanup;
- if (!(cpu = virCPUDefCopyWithoutModel(baseline)))
- goto cleanup;
+ cpu = virCPUDefCopyWithoutModel(baseline);
virCPUDefCopyModelFilter(cpu, baseline, false, virQEMUCapsCPUFilterFeatures,
&cpus[0]->arch);
if (!(hostmig = virCPUCopyMigratable(host->arch, host)))
return -1;
- if (!(cpu = virCPUDefCopyWithoutModel(hostmig)))
- return -1;
+ cpu = virCPUDefCopyWithoutModel(hostmig);
virCPUDefCopyModelFilter(cpu, hostmig, false, virQEMUCapsCPUFilterFeatures,
&host->arch);