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

Reply via email to