qobject: Clean up QLIST_FOREACH_ENTRY()
authorMarkus Armbruster <armbru@redhat.com>
Wed, 15 Apr 2020 08:30:44 +0000 (10:30 +0200)
committerMarkus Armbruster <armbru@redhat.com>
Thu, 30 Apr 2020 04:51:15 +0000 (06:51 +0200)
QLIST_FOREACH_ENTRY() traverses a tail queue manually.  Use
QTAILQ_FIRST() and QTAILQ_NEXT() instead.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20200415083048.14339-2-armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
include/qapi/qmp/qlist.h

index 8d2c32ca286326cf90797ef5267900f6bf546f75..07ecae81e4db7c3a7bf7da76b4dbc36a296d5b7a 100644 (file)
@@ -34,10 +34,10 @@ void qlist_append_int(QList *qlist, int64_t value);
 void qlist_append_null(QList *qlist);
 void qlist_append_str(QList *qlist, const char *value);
 
-#define QLIST_FOREACH_ENTRY(qlist, var)             \
-        for ((var) = ((qlist)->head.tqh_first);     \
-            (var);                                  \
-            (var) = ((var)->next.tqe_next))
+#define QLIST_FOREACH_ENTRY(qlist, var)                 \
+        for ((var) = QTAILQ_FIRST(&(qlist)->head);      \
+             (var);                                     \
+             (var) = QTAILQ_NEXT((var), next))
 
 static inline QObject *qlist_entry_obj(const QListEntry *entry)
 {