aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/list.c85
1 files changed, 0 insertions, 85 deletions
diff --git a/common/list.c b/common/list.c
deleted file mode 100644
index 557e0dc..0000000
--- a/common/list.c
+++ /dev/null
@@ -1,85 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "list.h"
-
-void list_init(struct list *list) {
- list->capacity = 10;
- list->length = 0;
- list->items = malloc(sizeof(void *) * list->capacity);
-}
-
-static void list_resize(struct list *list) {
- if (list->length == list->capacity) {
- list->capacity *= 2;
- list->items = realloc(list->items, sizeof(void *) * list->capacity);
- }
-}
-
-void list_free(struct list *list) {
- list->capacity = 0;
- list->length = 0;
- free(list->items);
-}
-
-void list_add(struct list *list, void *item) {
- list_resize(list);
- list->items[list->length++] = item;
-}
-
-void list_insert(struct list *list, size_t index, void *item) {
- list_resize(list);
- memmove(&list->items[index + 1], &list->items[index],
- sizeof(void *) * (list->length - index));
- list->length++;
- list->items[index] = item;
-}
-
-void list_del(struct list *list, size_t index) {
- list->length--;
- memmove(&list->items[index], &list->items[index + 1],
- sizeof(void *) * (list->length - index));
-}
-
-size_t list_find(struct list *list, const void *item) {
- for (size_t i = 0; i < list->length; i++) {
- if (list->items[i] == item) {
- return i;
- }
- }
- return -1;
-}
-
-void list_concat(struct list *list, const struct list *source) {
- if (list->length + source->length > list->capacity) {
- while (list->length + source->length > list->capacity) {
- list->capacity *= 2;
- }
- list->items = realloc(list->items, sizeof(void *) * list->capacity);
- }
- memmove(&list->items[list->length], source->items, sizeof(void *) * (source->length));
- list->length += source->length;
-}
-
-void list_truncate(struct list *list) {
- list->length = 0;
-}
-
-void *list_pop_front(struct list *list) {
- if (list->length == 0) {
- return NULL;
- }
- void *item = list->items[0];
- 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;
-}