From: Jiri Denemark <[email protected]> Separate the sorting code from virCPUExpandFeatures into a standalone function.
Signed-off-by: Jiri Denemark <[email protected]> --- Notes: Version 2: - new patch src/conf/cpu_conf.c | 20 ++++++++++++++++++++ src/conf/cpu_conf.h | 3 +++ src/cpu/cpu.c | 15 +-------------- src/libvirt_private.syms | 1 + 4 files changed, 25 insertions(+), 14 deletions(-) diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c index 7aeedf64f5..f5a2004ee6 100644 --- a/src/conf/cpu_conf.c +++ b/src/conf/cpu_conf.c @@ -1277,3 +1277,23 @@ virCPUDefListFree(virCPUDef **cpus) g_free(cpus); } + + +static int +virCPUFeatureDefCompare(const void *p1, + const void *p2, + void *opaque G_GNUC_UNUSED) +{ + const virCPUFeatureDef *f1 = p1; + const virCPUFeatureDef *f2 = p2; + + return strcmp(f1->name, f2->name); +} + + +void +virCPUDefSortFeatures(virCPUDef *cpu) +{ + g_qsort_with_data(cpu->features, cpu->nfeatures, sizeof(*cpu->features), + virCPUFeatureDefCompare, NULL); +} diff --git a/src/conf/cpu_conf.h b/src/conf/cpu_conf.h index cfb8f1a461..0cac1a1489 100644 --- a/src/conf/cpu_conf.h +++ b/src/conf/cpu_conf.h @@ -280,3 +280,6 @@ virCPUDefListParse(const char **xmlCPUs, virCPUType cpuType); void virCPUDefListFree(virCPUDef **cpus); + +void +virCPUDefSortFeatures(virCPUDef *cpu); diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c index 233686485d..d81e620a1d 100644 --- a/src/cpu/cpu.c +++ b/src/cpu/cpu.c @@ -1125,18 +1125,6 @@ virCPUConvertLegacy(virArch arch, } -static int -virCPUFeatureCompare(const void *p1, - const void *p2, - void *opaque G_GNUC_UNUSED) -{ - const virCPUFeatureDef *f1 = p1; - const virCPUFeatureDef *f2 = p2; - - return strcmp(f1->name, f2->name); -} - - /** * virCPUExpandFeatures: * @@ -1168,8 +1156,7 @@ virCPUExpandFeatures(virArch arch, driver->expandFeatures(cpu) < 0) return -1; - g_qsort_with_data(cpu->features, cpu->nfeatures, sizeof(*cpu->features), - virCPUFeatureCompare, NULL); + virCPUDefSortFeatures(cpu); VIR_DEBUG("nfeatures=%zu", cpu->nfeatures); return 0; diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 2391f01bc7..95f7b409db 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -118,6 +118,7 @@ virCPUDefNew; virCPUDefParseXML; virCPUDefParseXMLString; virCPUDefRef; +virCPUDefSortFeatures; virCPUDefStealModel; virCPUDefUpdateFeature; virCPUMaxPhysAddrModeTypeFromString; -- 2.54.0
