summaryrefslogtreecommitdiff
path: root/Zend/zend_llist.h
diff options
context:
space:
mode:
authorAndrei Zmievski <andrei@php.net>2000-03-14 21:20:38 +0000
committerAndrei Zmievski <andrei@php.net>2000-03-14 21:20:38 +0000
commit26eaf668e78ffa60e1559f4097eeea0ee1a645a2 (patch)
tree298d74675483b800507fb5a0e646c2db9bf6c71e /Zend/zend_llist.h
parent29c41fe46dccc9fbd874ab74e4bfa7dc5720d6f0 (diff)
downloadphp-git-26eaf668e78ffa60e1559f4097eeea0ee1a645a2.tar.gz
Implemented external list traversing.
Diffstat (limited to 'Zend/zend_llist.h')
-rw-r--r--Zend/zend_llist.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/Zend/zend_llist.h b/Zend/zend_llist.h
index c51f9074a7..805859a8ff 100644
--- a/Zend/zend_llist.h
+++ b/Zend/zend_llist.h
@@ -39,6 +39,7 @@ typedef struct _zend_llist {
} zend_llist;
typedef int (*llist_compare_func_t) (const zend_llist_element *, const zend_llist_element *);
+typedef zend_llist_element* zend_llist_position;
BEGIN_EXTERN_C()
ZEND_API void zend_llist_init(zend_llist *l, size_t size, void (*dtor)(void *data), unsigned char persistent);
@@ -55,10 +56,16 @@ ZEND_API int zend_llist_count(zend_llist *l);
ZEND_API void zend_llist_sort(zend_llist *l, llist_compare_func_t comp_func);
/* traversal */
-ZEND_API void *zend_llist_get_first(zend_llist *l);
-ZEND_API void *zend_llist_get_last(zend_llist *l);
-ZEND_API void *zend_llist_get_next(zend_llist *l);
-ZEND_API void *zend_llist_get_prev(zend_llist *l);
+ZEND_API void *zend_llist_get_first_ex(zend_llist *l, zend_llist_position *pos);
+ZEND_API void *zend_llist_get_last_ex(zend_llist *l, zend_llist_position *pos);
+ZEND_API void *zend_llist_get_next_ex(zend_llist *l, zend_llist_position *pos);
+ZEND_API void *zend_llist_get_prev_ex(zend_llist *l, zend_llist_position *pos);
+
+#define zend_llist_get_first(l) zend_llist_get_first_ex(l, NULL)
+#define zend_llist_get_last(l) zend_llist_get_last_ex(l, NULL)
+#define zend_llist_get_next(l) zend_llist_get_next_ex(l, NULL)
+#define zend_llist_get_prev(l) zend_llist_get_prev_ex(l, NULL)
+
END_EXTERN_C()
#endif /* _ZEND_LLIST_H */