提交 e4151224 编写于 作者: P Peter Krempa

conf: Add helper to free domain list

Add helper to free a list of virDomainPtrs without raising or clearing
errors. Use it in one place and prepare it for reuse.
上级 f284ee54
...@@ -20020,6 +20020,29 @@ virDomainListPopulate(void *payload, ...@@ -20020,6 +20020,29 @@ virDomainListPopulate(void *payload,
} }
#undef MATCH #undef MATCH
/**
* virDomainListFree:
* @list: list of domains to free
*
* Frees a NULL-terminated list of domains without messing with currently
* set libvirt errors.
*/
void
virDomainListFree(virDomainPtr *list)
{
virDomainPtr *next;
if (!list)
return;
for (next = list; *next; next++)
virObjectUnref(*next);
VIR_FREE(list);
}
int int
virDomainObjListExport(virDomainObjListPtr doms, virDomainObjListExport(virDomainObjListPtr doms,
virConnectPtr conn, virConnectPtr conn,
...@@ -20028,7 +20051,6 @@ virDomainObjListExport(virDomainObjListPtr doms, ...@@ -20028,7 +20051,6 @@ virDomainObjListExport(virDomainObjListPtr doms,
unsigned int flags) unsigned int flags)
{ {
int ret = -1; int ret = -1;
size_t i;
struct virDomainListData data = { struct virDomainListData data = {
conn, NULL, conn, NULL,
...@@ -20056,13 +20078,7 @@ virDomainObjListExport(virDomainObjListPtr doms, ...@@ -20056,13 +20078,7 @@ virDomainObjListExport(virDomainObjListPtr doms,
ret = data.ndomains; ret = data.ndomains;
cleanup: cleanup:
if (data.domains) { virDomainListFree(data.domains);
int count = virHashSize(doms->objs);
for (i = 0; i < count; i++)
virObjectUnref(data.domains[i]);
}
VIR_FREE(data.domains);
virObjectUnlock(doms); virObjectUnlock(doms);
return ret; return ret;
} }
......
...@@ -2707,6 +2707,8 @@ int virDomainObjListExport(virDomainObjListPtr doms, ...@@ -2707,6 +2707,8 @@ int virDomainObjListExport(virDomainObjListPtr doms,
virDomainObjListFilter filter, virDomainObjListFilter filter,
unsigned int flags); unsigned int flags);
void virDomainListFree(virDomainPtr *list);
int int
virDomainDefMaybeAddController(virDomainDefPtr def, virDomainDefMaybeAddController(virDomainDefPtr def,
int type, int type,
......
...@@ -311,6 +311,7 @@ virDomainLifecycleCrashTypeFromString; ...@@ -311,6 +311,7 @@ virDomainLifecycleCrashTypeFromString;
virDomainLifecycleCrashTypeToString; virDomainLifecycleCrashTypeToString;
virDomainLifecycleTypeFromString; virDomainLifecycleTypeFromString;
virDomainLifecycleTypeToString; virDomainLifecycleTypeToString;
virDomainListFree;
virDomainLiveConfigHelperMethod; virDomainLiveConfigHelperMethod;
virDomainLockFailureTypeFromString; virDomainLockFailureTypeFromString;
virDomainLockFailureTypeToString; virDomainLockFailureTypeToString;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册