diff --git a/src/lib/list.c b/src/lib/list.c index 6f17db6..b32478b 100644 --- a/src/lib/list.c +++ b/src/lib/list.c @@ -14,8 +14,11 @@ typedef struct { } list_meta_t; static void *list_resize(list_meta_t *list, int new_size) { - if (new_size <= 0) + if (new_size <= 0) { return NULL; + } else if (new_size == list->max_size) { + return list; + } list_meta_t *new_ptr = realloc(list, sizeof(list_meta_t) + list->elem_size * new_size); if (new_ptr == NULL) @@ -61,6 +64,10 @@ int list_find(void *list_ptr, void *elem) { return -1; } +int list_contains(void *list_ptr, void *elem) { + return list_find(list_ptr, elem) != -1; +} + void *list_insert(void *list_ptr, void *elem, int n) { void *ptr = NULL; list_ptr = list_insert_ptr(list_ptr, &ptr, n); diff --git a/src/lib/list.h b/src/lib/list.h index d778a48..887e51d 100644 --- a/src/lib/list.h +++ b/src/lib/list.h @@ -8,6 +8,8 @@ int list_size(const void *list_ptr); int list_find(void *list_ptr, void *elem); +int list_contains(void *list_ptr, void *elem); + void *list_insert(void *list_ptr, void *elem, int n); void *list_insert_ptr(void *list_ptr, void **elem, int n);