diff options
author | Kenny Levinsen <kl@kl.wtf> | 2020-08-02 21:39:48 +0200 |
---|---|---|
committer | Kenny Levinsen <kl@kl.wtf> | 2020-08-02 21:46:13 +0200 |
commit | 5b4d00d6cff955a31a2179d613dcaa3ade327d28 (patch) | |
tree | 99359d933ca07a404fd79a359991d426f0f3e1fd | |
parent | b751481e5c0bed1b81b7c769923e772e9fd84e9d (diff) | |
download | seatd-5b4d00d6cff955a31a2179d613dcaa3ade327d28.tar.xz |
list: Add list_pop_back
-rw-r--r-- | common/list.c | 9 | ||||
-rw-r--r-- | include/list.h | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/common/list.c b/common/list.c index 1a86837..d38daa0 100644 --- a/common/list.c +++ b/common/list.c @@ -74,3 +74,12 @@ void *list_pop_front(struct list *list) { list_del(list, 0); return item; } + +void *list_pop_back(struct list *list) { + if (list->length == 0) { + return NULL; + } + void *item = list->items[list->length - 1]; + list->length -= 1; + return item; +} diff --git a/include/list.h b/include/list.h index 3f2ac6c..faeadd2 100644 --- a/include/list.h +++ b/include/list.h @@ -17,6 +17,7 @@ void list_del(struct list *list, size_t index); void list_concat(struct list *list, struct list *source); void list_truncate(struct list *list); void *list_pop_front(struct list *list); +void *list_pop_back(struct list *list); size_t list_find(struct list *list, const void *item); #endif |