diff options
author | Alexander Smirnov <alex@ydb.tech> | 2024-10-16 12:11:24 +0000 |
---|---|---|
committer | Alexander Smirnov <alex@ydb.tech> | 2024-10-16 12:11:24 +0000 |
commit | 40811e93f3fdf9342a9295369994012420fac548 (patch) | |
tree | a8d85e094a9c21e10aa250f537c101fc2016a049 /contrib/libs/curl/lib/llist.h | |
parent | 30ebe5357bb143648c6be4d151ecd4944af81ada (diff) | |
parent | 28a0c4a9f297064538a018c512cd9bbd00a1a35d (diff) | |
download | ydb-40811e93f3fdf9342a9295369994012420fac548.tar.gz |
Merge branch 'rightlib' into mergelibs-241016-1210
Diffstat (limited to 'contrib/libs/curl/lib/llist.h')
-rw-r--r-- | contrib/libs/curl/lib/llist.h | 67 |
1 files changed, 15 insertions, 52 deletions
diff --git a/contrib/libs/curl/lib/llist.h b/contrib/libs/curl/lib/llist.h index 26581869a3..320580e33c 100644 --- a/contrib/libs/curl/lib/llist.h +++ b/contrib/libs/curl/lib/llist.h @@ -27,63 +27,26 @@ #include "curl_setup.h" #include <stddef.h> -typedef void (*Curl_llist_dtor)(void *user, void *elem); +typedef void (*Curl_llist_dtor)(void *, void *); -/* none of these struct members should be referenced directly, use the - dedicated functions */ - -struct Curl_llist { - struct Curl_llist_node *_head; - struct Curl_llist_node *_tail; - Curl_llist_dtor _dtor; - size_t _size; -#ifdef DEBUGBUILD - int _init; /* detect API usage mistakes */ -#endif +struct Curl_llist_element { + void *ptr; + struct Curl_llist_element *prev; + struct Curl_llist_element *next; }; -struct Curl_llist_node { - struct Curl_llist *_list; /* the list where this belongs */ - void *_ptr; - struct Curl_llist_node *_prev; - struct Curl_llist_node *_next; -#ifdef DEBUGBUILD - int _init; /* detect API usage mistakes */ -#endif +struct Curl_llist { + struct Curl_llist_element *head; + struct Curl_llist_element *tail; + Curl_llist_dtor dtor; + size_t size; }; void Curl_llist_init(struct Curl_llist *, Curl_llist_dtor); -void Curl_llist_insert_next(struct Curl_llist *, struct Curl_llist_node *, - const void *, struct Curl_llist_node *node); -void Curl_llist_append(struct Curl_llist *, - const void *, struct Curl_llist_node *node); -void Curl_node_uremove(struct Curl_llist_node *, void *); -void Curl_node_remove(struct Curl_llist_node *); +void Curl_llist_insert_next(struct Curl_llist *, struct Curl_llist_element *, + const void *, struct Curl_llist_element *node); +void Curl_llist_remove(struct Curl_llist *, struct Curl_llist_element *, + void *); +size_t Curl_llist_count(struct Curl_llist *); void Curl_llist_destroy(struct Curl_llist *, void *); - -/* Curl_llist_head() returns the first 'struct Curl_llist_node *', which - might be NULL */ -struct Curl_llist_node *Curl_llist_head(struct Curl_llist *list); - -/* Curl_llist_tail() returns the last 'struct Curl_llist_node *', which - might be NULL */ -struct Curl_llist_node *Curl_llist_tail(struct Curl_llist *list); - -/* Curl_llist_count() returns a size_t the number of nodes in the list */ -size_t Curl_llist_count(struct Curl_llist *list); - -/* Curl_node_elem() returns the custom data from a Curl_llist_node */ -void *Curl_node_elem(struct Curl_llist_node *n); - -/* Curl_node_next() returns the next element in a list from a given - Curl_llist_node */ -struct Curl_llist_node *Curl_node_next(struct Curl_llist_node *n); - -/* Curl_node_prev() returns the previous element in a list from a given - Curl_llist_node */ -struct Curl_llist_node *Curl_node_prev(struct Curl_llist_node *n); - -/* Curl_node_llist() return the list the node is in or NULL. */ -struct Curl_llist *Curl_node_llist(struct Curl_llist_node *n); - #endif /* HEADER_CURL_LLIST_H */ |