diff options
author | Jamey Sharp <jamey@minilop.net> | 2006-02-26 23:43:44 -0800 |
---|---|---|
committer | Jamey Sharp <jamey@minilop.net> | 2006-02-26 23:43:44 -0800 |
commit | 50acfeae36f5f67e8b92fd7610141c489ee348c5 (patch) | |
tree | 4477653f938cb9328c315927b4f61619fa5c5550 /src/xcb_list.c | |
parent | 86ce18c22c8daebe8796d3c38e8a1d496ab6e8de (diff) |
Delete unused xcb_list functions and refactor others.
Diffstat (limited to 'src/xcb_list.c')
-rw-r--r-- | src/xcb_list.c | 63 |
1 files changed, 15 insertions, 48 deletions
diff --git a/src/xcb_list.c b/src/xcb_list.c index 6a72c16..718a380 100644 --- a/src/xcb_list.c +++ b/src/xcb_list.c @@ -53,35 +53,21 @@ _xcb_list *_xcb_list_new() return list; } -static void _xcb_list_clear(_xcb_list *list, XCBListFreeFunc do_free) -{ - void *tmp; - while((tmp = _xcb_list_remove_head(list))) - if(do_free) - do_free(tmp); -} - void _xcb_list_delete(_xcb_list *list, XCBListFreeFunc do_free) { if(!list) return; - _xcb_list_clear(list, do_free); + while(list->head) + { + node *cur = list->head; + if(do_free) + do_free(cur->data); + list->head = cur->next; + free(cur); + } free(list); } -int _xcb_list_insert(_xcb_list *list, void *data) -{ - node *cur; - cur = malloc(sizeof(node)); - if(!cur) - return 0; - cur->data = data; - - cur->next = list->head; - list->head = cur; - return 1; -} - int _xcb_list_append(_xcb_list *list, void *data) { node *cur; @@ -103,20 +89,6 @@ void *_xcb_list_peek_head(_xcb_list *list) return list->head->data; } -void *_xcb_list_remove_head(_xcb_list *list) -{ - void *ret; - node *tmp = list->head; - if(!tmp) - return 0; - ret = tmp->data; - list->head = tmp->next; - if(!list->head) - list->tail = &list->head; - free(tmp); - return ret; -} - void *_xcb_list_remove(_xcb_list *list, int (*cmp)(const void *, const void *), const void *data) { node **cur; @@ -153,14 +125,17 @@ _xcb_map *_xcb_map_new(void) __attribute__ ((alias ("_xcb_list_new"))); void _xcb_map_delete(_xcb_map *q, XCBListFreeFunc do_free) { - map_pair *tmp; if(!q) return; - while((tmp = _xcb_list_remove_head(q))) + while(q->head) { + node *cur = q->head; + map_pair *pair = cur->data; if(do_free) - do_free(tmp->value); - free(tmp); + do_free(pair->value); + q->head = cur->next; + free(pair); + free(cur); } free(q); } @@ -185,14 +160,6 @@ static int match_map_pair(const void *key, const void *pair) return ((map_pair *) pair)->key == *(unsigned int *) key; } -void *_xcb_map_get(_xcb_map *q, unsigned int key) -{ - map_pair *cur = _xcb_list_find(q, match_map_pair, &key); - if(!cur) - return 0; - return cur->value; -} - void *_xcb_map_remove(_xcb_map *q, unsigned int key) { map_pair *cur = _xcb_list_remove(q, match_map_pair, &key); |