conf: Introduce virCPUDefStealModel

The function moves CPU model related parts from one CPU definition to
another. It can be used to avoid unnecessary copies from a temporary CPU
definitions which will be freed anyway.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
Jiri Denemark 2016-06-23 12:54:19 +02:00
parent bcf46ddb3f
commit 8e240afccb
3 changed files with 22 additions and 0 deletions

View File

@ -115,6 +115,23 @@ virCPUDefCopyModel(virCPUDefPtr dst,
}
void
virCPUDefStealModel(virCPUDefPtr dst,
virCPUDefPtr src)
{
virCPUDefFreeModel(dst);
VIR_STEAL_PTR(dst->model, src->model);
VIR_STEAL_PTR(dst->vendor, src->vendor);
VIR_STEAL_PTR(dst->vendor_id, src->vendor_id);
VIR_STEAL_PTR(dst->features, src->features);
dst->nfeatures_max = src->nfeatures_max;
src->nfeatures_max = 0;
dst->nfeatures = src->nfeatures;
src->nfeatures = 0;
}
virCPUDefPtr
virCPUDefCopyWithoutModel(const virCPUDef *cpu)
{

View File

@ -123,6 +123,10 @@ virCPUDefCopyModel(virCPUDefPtr dst,
const virCPUDef *src,
bool resetPolicy);
void
virCPUDefStealModel(virCPUDefPtr dst,
virCPUDefPtr src);
virCPUDefPtr
virCPUDefCopy(const virCPUDef *cpu);

View File

@ -72,6 +72,7 @@ virCPUDefFormatBuf;
virCPUDefFree;
virCPUDefFreeModel;
virCPUDefParseXML;
virCPUDefStealModel;
virCPUDefUpdateFeature;
virCPUModeTypeToString;