[PATCH 1/2] Implement llist_size() - count elements in a linked list
Bartosz Golaszewski
bartekgola at gmail.com
Wed Jun 11 21:07:00 UTC 2014
Signed-off-by: Bartosz Golaszewski <bartekgola at gmail.com>
---
include/libbb.h | 1 +
libbb/llist.c | 13 +++++++++++++
2 files changed, 14 insertions(+)
diff --git a/include/libbb.h b/include/libbb.h
index a1a0dc1..42fa30a 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -1052,6 +1052,7 @@ void llist_unlink(llist_t **head, llist_t *elm) FAST_FUNC;
void llist_free(llist_t *elm, void (*freeit)(void *data)) FAST_FUNC;
llist_t *llist_rev(llist_t *list) FAST_FUNC;
llist_t *llist_find_str(llist_t *first, const char *str) FAST_FUNC;
+size_t llist_size(llist_t *list) FAST_FUNC;
/* BTW, surprisingly, changing API to
* llist_t *llist_add_to(llist_t *old_head, void *data)
* etc does not result in smaller code... */
diff --git a/libbb/llist.c b/libbb/llist.c
index 032e9fa..e2d86b0 100644
--- a/libbb/llist.c
+++ b/libbb/llist.c
@@ -96,3 +96,16 @@ llist_t* FAST_FUNC llist_find_str(llist_t *list, const char *str)
}
return list;
}
+
+/* Count elements in the list. */
+size_t FAST_FUNC llist_size(llist_t *list)
+{
+ size_t size = 0;
+
+ while (list) {
+ list = list->link;
+ ++size;
+ }
+
+ return size;
+}
--
1.9.1
More information about the busybox
mailing list