if (!data)
return;
- VIR_FREE(data->items);
+ g_free(data->items);
}
+G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(virCPUx86Data, virCPUx86DataClear);
static void
virCPUx86DataClear(&data->data.x86);
VIR_FREE(data);
}
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(virCPUData, virCPUx86DataFree);
-static int
+static void
x86DataCopy(virCPUx86Data *dst, const virCPUx86Data *src)
{
size_t i;
- if (VIR_ALLOC_N(dst->items, src->len) < 0)
- return -1;
-
+ dst->items = g_new0(virCPUx86DataItem, src->len);
dst->len = src->len;
+
for (i = 0; i < src->len; i++)
dst->items[i] = src->items[i];
-
- return 0;
}
cpu->model = g_strdup(model->name);
- if (x86DataCopy(©, data) < 0 ||
- x86DataCopy(&modelData, &model->data) < 0)
- goto error;
+ x86DataCopy(©, data);
+ x86DataCopy(&modelData, &model->data);
if ((vendor = x86DataToVendor(©, map)))
cpu->vendor = g_strdup(vendor->name);
copy->name = g_strdup(model->name);
- if (x86ModelCopySignatures(copy, model) < 0 ||
- x86DataCopy(©->data, &model->data) < 0) {
+ if (x86ModelCopySignatures(copy, model) < 0) {
x86ModelFree(copy);
return NULL;
}
+ x86DataCopy(©->data, &model->data);
copy->vendor = model->vendor;
}
model->vendor = ancestor->vendor;
- if (x86ModelCopySignatures(model, ancestor) < 0 ||
- x86DataCopy(&model->data, &ancestor->data) < 0)
+ if (x86ModelCopySignatures(model, ancestor) < 0)
return -1;
+ x86DataCopy(&model->data, &ancestor->data);
+
return 0;
}
x86DataSubtract(&guest_model->data, &cpu_disable->data);
- if (!(guestData = virCPUDataNew(arch)) ||
- x86DataCopy(&guestData->data.x86, &guest_model->data) < 0)
+ if (!(guestData = virCPUDataNew(arch)))
goto error;
+ x86DataCopy(&guestData->data.x86, &guest_model->data);
*guest = guestData;
}
ssize_t i;
int rc;
- if (!cpuData || x86DataCopy(&data, cpuData) < 0)
+ if (!cpuData)
return -1;
+ x86DataCopy(&data, cpuData);
+
if (!(map = virCPUx86GetMap()))
goto cleanup;
!(modelDisabled = x86ModelFromCPU(cpu, map, VIR_CPU_FEATURE_DISABLE)))
goto cleanup;
- if (dataEnabled &&
- x86DataCopy(&enabled, &dataEnabled->data.x86) < 0)
- goto cleanup;
+ if (dataEnabled)
+ x86DataCopy(&enabled, &dataEnabled->data.x86);
- if (dataDisabled &&
- x86DataCopy(&disabled, &dataDisabled->data.x86) < 0)
- goto cleanup;
+ if (dataDisabled)
+ x86DataCopy(&disabled, &dataDisabled->data.x86);
for (i = 0; i < map->nfeatures; i++) {
virCPUx86FeaturePtr feature = map->features[i];