[libvirt PATCH v2 05/10] conf: add virDomainMomentFindLeaf() which operates on virDomainMomentObjPtr

Pavel Mores pmores at redhat.com
Wed May 6 11:42:21 UTC 2020


The new function operates on virDomainMomentObjPtr which is indicated by
its name.  To avoid code duplication, virDomainMomentObjListFindLeaf()
was reimplemented in terms of the new function.

Signed-off-by: Pavel Mores <pmores at redhat.com>
---
 src/conf/virdomainmomentobjlist.c | 25 +++++++++++++++----------
 src/conf/virdomainmomentobjlist.h |  1 +
 2 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/src/conf/virdomainmomentobjlist.c b/src/conf/virdomainmomentobjlist.c
index 41e887ba18..c57d9cc787 100644
--- a/src/conf/virdomainmomentobjlist.c
+++ b/src/conf/virdomainmomentobjlist.c
@@ -207,6 +207,20 @@ virDomainMomentMoveChildren(virDomainMomentObjPtr from,
 }
 
 
+/* If there is exactly one leaf node, return that node. */
+virDomainMomentObjPtr
+virDomainMomentFindLeaf(virDomainMomentObjPtr moment)
+{
+    if (moment->nchildren != 1)
+        return NULL;
+    while (moment->nchildren == 1)
+        moment = moment->first_child;
+    if (moment->nchildren == 0)
+        return moment;
+    return NULL;
+}
+
+
 static virDomainMomentObjPtr
 virDomainMomentObjNew(void)
 {
@@ -586,17 +600,8 @@ virDomainMomentCheckCycles(virDomainMomentObjListPtr list,
     return 0;
 }
 
-/* If there is exactly one leaf node, return that node. */
 virDomainMomentObjPtr
 virDomainMomentObjListFindLeaf(virDomainMomentObjListPtr list)
 {
-    virDomainMomentObjPtr moment = &list->metaroot;
-
-    if (moment->nchildren != 1)
-        return NULL;
-    while (moment->nchildren == 1)
-        moment = moment->first_child;
-    if (moment->nchildren == 0)
-        return moment;
-    return NULL;
+    return virDomainMomentFindLeaf(&list->metaroot);
 }
diff --git a/src/conf/virdomainmomentobjlist.h b/src/conf/virdomainmomentobjlist.h
index cab51edbc4..9c2d01ff8f 100644
--- a/src/conf/virdomainmomentobjlist.h
+++ b/src/conf/virdomainmomentobjlist.h
@@ -62,6 +62,7 @@ void virDomainMomentMoveChildren(virDomainMomentObjPtr from,
                                  virDomainMomentObjPtr to);
 void virDomainMomentLinkParent(virDomainMomentObjListPtr moments,
                                virDomainMomentObjPtr moment);
+virDomainMomentObjPtr virDomainMomentFindLeaf(virDomainMomentObjPtr moment);
 
 virDomainMomentObjListPtr virDomainMomentObjListNew(void);
 void virDomainMomentObjListFree(virDomainMomentObjListPtr moments);
-- 
2.24.1




More information about the libvir-list mailing list