提交 27fd5598 编写于 作者: P Peter Krempa

qemu: Fix compilation error when enum variable size differs from 'int'

Since commit bcd9a564 virDomainNumatuneGetMode returns the value
via a pointer rather than in the return value. The change triggered
problems with platforms where the compiler decides to use a data type of
size different than integer at the point where we typecast it.

Work around the issue by using an intermediate variable of the correct
type that gets casted back by the default typecasting rules.
上级 e14cdeb4
......@@ -10524,6 +10524,7 @@ qemuDomainGetNumaParameters(virDomainPtr dom,
size_t i;
virDomainObjPtr vm = NULL;
virDomainDefPtr persistentDef = NULL;
virDomainNumatuneMemMode tmpmode = VIR_DOMAIN_NUMATUNE_MEM_STRICT;
char *nodeset = NULL;
int ret = -1;
virCapsPtr caps = NULL;
......@@ -10567,12 +10568,12 @@ qemuDomainGetNumaParameters(virDomainPtr dom,
switch (i) {
case 0: /* fill numa mode here */
ignore_value(virDomainNumatuneGetMode(def->numa, -1, &tmpmode));
if (virTypedParameterAssign(param, VIR_DOMAIN_NUMA_MODE,
VIR_TYPED_PARAM_INT, 0) < 0)
VIR_TYPED_PARAM_INT, tmpmode) < 0)
goto cleanup;
virDomainNumatuneGetMode(def->numa, -1,
(virDomainNumatuneMemMode *) &param->value.i);
break;
case 1: /* fill numa nodeset here */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册