On Tue, Oct 15, 2019 at 05:34:41PM +0200, Jiri Denemark wrote:
Rather than returning a direct pointer the list stored in qemuCaps
the
function now creates a new copy of the CPU models list.
The main purpose of this seemingly useless change is to update callers
to free the result returned by virQEMUCapsGetCPUDefinitions because the
internals of this function will change significantly in the following
patches.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
Reviewed-by: Ján Tomko <jtomko(a)redhat.com>
---
Notes:
Version 2:
- no change
src/qemu/qemu_capabilities.c | 23 ++++++++++++++++++-----
src/qemu/qemu_driver.c | 2 +-
src/qemu/qemu_process.c | 7 +++++--
tests/cputest.c | 1 -
4 files changed, 24 insertions(+), 9 deletions(-)
Reviewed-by: Ján Tomko <jtomko(a)redhat.com>
with the following squashed in:
diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h
index 264c7fc429..36500435fd 100644
--- a/src/conf/domain_capabilities.h
+++ b/src/conf/domain_capabilities.h
@@ -139,6 +139,8 @@ struct _virDomainCapsCPUModels {
virDomainCapsCPUModelPtr models;
};
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainCapsCPUModels, virObjectUnref);
+
typedef struct _virDomainCapsCPU virDomainCapsCPU;
typedef virDomainCapsCPU *virDomainCapsCPUPtr;
struct _virDomainCapsCPU {
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index a875896a73..e1750751b4 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3132,7 +3132,7 @@ virQEMUCapsInitCPUModelX86(virQEMUCapsPtr qemuCaps,
virCPUDefPtr cpu,
bool migratable)
{
- VIR_AUTOUNREF(virDomainCapsCPUModelsPtr) cpuModels = NULL;
+ g_autoptr(virDomainCapsCPUModels) cpuModels = NULL;
virCPUDataPtr data = NULL;
int ret = -1;
@@ -3227,7 +3227,7 @@ virQEMUCapsInitHostCPUModel(virQEMUCapsPtr qemuCaps,
if ((rc = virQEMUCapsInitCPUModel(qemuCaps, type, cpu, false)) < 0) {
goto error;
} else if (rc == 1) {
- VIR_AUTOUNREF(virDomainCapsCPUModelsPtr) cpuModels = NULL;
+ g_autoptr(virDomainCapsCPUModels) cpuModels = NULL;
VIR_DEBUG("No host CPU model info from QEMU; probing host CPU
directly");
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 78ba1f6f04..d95bf92cfd 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -13913,7 +13913,7 @@ qemuConnectBaselineHypervisorCPU(virConnectPtr conn,
virQEMUCapsPtr qemuCaps = NULL;
virArch arch;
virDomainVirtType virttype;
- VIR_AUTOUNREF(virDomainCapsCPUModelsPtr) cpuModels = NULL;
+ g_autoptr(virDomainCapsCPUModels) cpuModels = NULL;
bool migratable;
virCPUDefPtr cpu = NULL;
char *cpustr = NULL;
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 539ab7ae33..9135a90a0d 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -6122,7 +6122,7 @@ qemuProcessUpdateGuestCPU(virDomainDefPtr def,
/* nothing to update for host-passthrough */
if (def->cpu->mode != VIR_CPU_MODE_HOST_PASSTHROUGH) {
- VIR_AUTOUNREF(virDomainCapsCPUModelsPtr) cpuModels = NULL;
+ g_autoptr(virDomainCapsCPUModels) cpuModels = NULL;
if (def->cpu->check == VIR_CPU_CHECK_PARTIAL &&
virCPUCompare(caps->host.arch,