Use MATCH for all flags checks.
hypervMsvmComputerSystemToDomain expects the domain pointer to the
initialized to NULL.
All items in doms up to the count-th one are valid, no need to double
check before freeing them.
---
I could no runtime-test this because I've have trouble getting my
Hyper-V setup working again.
src/hyperv/hyperv_driver.c | 22 +++++++++++++---------
1 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/src/hyperv/hyperv_driver.c b/src/hyperv/hyperv_driver.c
index 65934c9..349627d 100644
--- a/src/hyperv/hyperv_driver.c
+++ b/src/hyperv/hyperv_driver.c
@@ -1302,13 +1302,14 @@ hypervListAllDomains(virConnectPtr conn,
virBufferAddLit(&query, MSVM_COMPUTERSYSTEM_WQL_VIRTUAL);
/* construct query with filter depending on flags */
- if (!(flags & VIR_CONNECT_LIST_DOMAINS_ACTIVE &&
- flags & VIR_CONNECT_LIST_DOMAINS_INACTIVE)) {
- if (flags & VIR_CONNECT_LIST_DOMAINS_ACTIVE) {
+ if (!(MATCH(VIR_CONNECT_LIST_DOMAINS_ACTIVE) &&
+ MATCH(VIR_CONNECT_LIST_DOMAINS_INACTIVE))) {
+ if (MATCH(VIR_CONNECT_LIST_DOMAINS_ACTIVE)) {
virBufferAddLit(&query, "and ");
virBufferAddLit(&query, MSVM_COMPUTERSYSTEM_WQL_ACTIVE);
}
- if (flags & VIR_CONNECT_LIST_DOMAINS_INACTIVE) {
+
+ if (MATCH(VIR_CONNECT_LIST_DOMAINS_INACTIVE)) {
virBufferAddLit(&query, "and ");
virBufferAddLit(&query, MSVM_COMPUTERSYSTEM_WQL_INACTIVE);
}
@@ -1358,14 +1359,16 @@ hypervListAllDomains(virConnectPtr conn,
continue;
}
- if (VIR_RESIZE_N(doms, ndoms, count, 2) < 0)
+ if (VIR_RESIZE_N(doms, ndoms, count, 2) < 0)
goto no_memory;
+ domain = NULL;
+
if (hypervMsvmComputerSystemToDomain(conn, computerSystem,
&domain) < 0)
goto cleanup;
- doms[count++] = domain;
+ doms[count++] = domain;
}
if (doms)
@@ -1376,13 +1379,14 @@ hypervListAllDomains(virConnectPtr conn,
cleanup:
if (doms) {
for (i = 0; i < count; ++i) {
- if (doms[i])
- virDomainFree(doms[i]);
+ virDomainFree(doms[i]);
}
+
+ VIR_FREE(doms);
}
- VIR_FREE(doms);
hypervFreeObject(priv, (hypervObject *)computerSystemList);
+
return ret;
no_memory:
--
1.7.4.1
Show replies by date
On 09.09.2012 17:42, Matthias Bolte wrote:
Use MATCH for all flags checks.
hypervMsvmComputerSystemToDomain expects the domain pointer to the
initialized to NULL.
All items in doms up to the count-th one are valid, no need to double
check before freeing them.
---
I could no runtime-test this because I've have trouble getting my
Hyper-V setup working again.
src/hyperv/hyperv_driver.c | 22 +++++++++++++---------
1 files changed, 13 insertions(+), 9 deletions(-)
ACK
Michal
2012/9/10 Michal Privoznik <mprivozn(a)redhat.com>:
On 09.09.2012 17:42, Matthias Bolte wrote:
> Use MATCH for all flags checks.
>
> hypervMsvmComputerSystemToDomain expects the domain pointer to the
> initialized to NULL.
>
> All items in doms up to the count-th one are valid, no need to double
> check before freeing them.
> ---
>
> I could no runtime-test this because I've have trouble getting my
> Hyper-V setup working again.
>
> src/hyperv/hyperv_driver.c | 22 +++++++++++++---------
> 1 files changed, 13 insertions(+), 9 deletions(-)
>
ACK
Michal
Thanks, pushed.
--
Matthias Bolte
http://photron.blogspot.com