summaryrefslogtreecommitdiffstats
path: root/dbus/dbus-list.c
diff options
context:
space:
mode:
Diffstat (limited to 'dbus/dbus-list.c')
-rw-r--r--dbus/dbus-list.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/dbus/dbus-list.c b/dbus/dbus-list.c
index 0b8e5a4e..31e5ae3f 100644
--- a/dbus/dbus-list.c
+++ b/dbus/dbus-list.c
@@ -521,6 +521,34 @@ _dbus_list_get_length (DBusList **list)
return length;
}
+/**
+ * Calls the given function for each element in the list. The
+ * function is passed the list element as its first argument, and the
+ * given data as its second argument.
+ *
+ * @param list address of the head of the list.
+ * @param function function to call for each element.
+ * @param data extra data for the function.
+ *
+ */
+void
+_dbus_list_foreach (DBusList **list,
+ DBusForeachFunction function,
+ void *data)
+{
+ DBusList *link;
+
+ link = *list;
+ while (link != NULL)
+ {
+ DBusList *next = _dbus_list_get_next_link (list, link);
+
+ (* function) (link->data, data);
+
+ link = next;
+ }
+}
+
/** @} */
#ifdef DBUS_BUILD_TESTS