summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2006-02-19 01:28:21 +0000
committerBenny Prijono <bennylp@teluu.com>2006-02-19 01:28:21 +0000
commitc4f0ced120a0d777cac4948f83408aa4d6262b28 (patch)
tree33cb2c16b25e2c77ed919c159e6dca2b47127768
parent7bc58324b88728bc502308c9cb385a12c0ba432e (diff)
Added pj_list_size()
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@192 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjlib/include/pj/list.h10
-rw-r--r--pjlib/include/pj/list_i.h14
2 files changed, 24 insertions, 0 deletions
diff --git a/pjlib/include/pj/list.h b/pjlib/include/pj/list.h
index 4f2e5145..24328dec 100644
--- a/pjlib/include/pj/list.h
+++ b/pjlib/include/pj/list.h
@@ -250,6 +250,16 @@ PJ_IDECL(pj_list_type*) pj_list_search(pj_list_type *list, void *value,
/**
+ * Traverse the list to get the number of elements in the list.
+ *
+ * @param list The list head.
+ *
+ * @return Number of elements.
+ */
+PJ_IDECL(pj_size_t) pj_list_size(pj_list_type *list);
+
+
+/**
* @}
*/
diff --git a/pjlib/include/pj/list_i.h b/pjlib/include/pj/list_i.h
index c6d95c80..2a8bf582 100644
--- a/pjlib/include/pj/list_i.h
+++ b/pjlib/include/pj/list_i.h
@@ -116,3 +116,17 @@ pj_list_search(pj_list_type *list, void *value,
return p==list ? NULL : p;
}
+
+PJ_IDEF(pj_size_t) pj_list_size(pj_list_type *list)
+{
+ pj_list *node = (pj_list*) ((pj_list*)list)->next;
+ pj_size_t count = 0;
+
+ while (node != list) {
+ ++count;
+ node = node->next;
+ }
+
+ return count;
+}
+