From 4e27b1e72605268fecd365dfbe06eabb4ba6e84d Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Wed, 10 May 2017 12:53:48 +1200 Subject: [PATCH] Added sway_asserts. --- common/list.c | 31 ++++++++++++++++++------------- include/list.h | 6 +++--- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/common/list.c b/common/list.c index cf86ac953..962ed6318 100644 --- a/common/list.c +++ b/common/list.c @@ -1,4 +1,5 @@ #include "list.h" +#include "log.h" #include #include @@ -52,7 +53,7 @@ static bool resize(list_t *list) { } void list_add(list_t *list, const void *data) { - if (!data || !list || !resize(list)) { + if (!sway_assert(list && data, "Invalid argument") || !resize(list)) { return; } @@ -64,7 +65,9 @@ void list_add(list_t *list, const void *data) { } void list_insert(list_t *list, size_t index, const void *data) { - if (!data || !list || index > list->length || !resize(list)) { + if (!sway_assert(list && data && index <= list->length, "Invalid argument") || + !resize(list)) { + return; } @@ -76,7 +79,7 @@ void list_insert(list_t *list, size_t index, const void *data) { } void list_delete(list_t *list, size_t index) { - if (!list || index >= list->length) { + if (!sway_assert(list && index < list->length, "Invalid argument")) { return; } @@ -88,7 +91,7 @@ void list_delete(list_t *list, size_t index) { } void list_swap(list_t *list, size_t i1, size_t i2) { - if (!list || i1 >= list->length || i2 >= list->length) { + if (!sway_assert(list && i1 < list->length && i2 < list->length, "Invalid argument")) { return; } @@ -102,7 +105,7 @@ void list_swap(list_t *list, size_t i1, size_t i2) { } void *list_get(list_t *list, size_t index) { - if (!list || index >= list->length) { + if (!sway_assert(list && index < list->length, "Invalid argument")) { return NULL; } @@ -113,7 +116,7 @@ void *list_get(list_t *list, size_t index) { } void list_qsort(list_t *list, int compare(const void *, const void *)) { - if (!list || !compare) { + if (!sway_assert(list && compare, "Invalid argument")) { return; } @@ -121,7 +124,7 @@ void list_qsort(list_t *list, int compare(const void *, const void *)) { } void list_isort(list_t *list, int compare(const void *, const void *)) { - if (!list || !compare) { + if (!sway_assert(list && compare, "Invalid argument")) { return; } @@ -143,8 +146,9 @@ void list_isort(list_t *list, int compare(const void *, const void *)) { } ssize_t list_bsearch(const list_t *list, int compare(const void *, const void *), - const void *key, void *ret) { - if (!list || !compare || !key) { + const void *key, void *ret) { + + if (!sway_assert(list && compare && key, "Invalid argument")) { return -1; } @@ -160,8 +164,9 @@ ssize_t list_bsearch(const list_t *list, int compare(const void *, const void *) } ssize_t list_lsearch(const list_t *list, int compare(const void *, const void *), - const void *key, void *ret) { - if (!list || !compare || !key) { + const void *key, void *ret) { + + if (!sway_assert(list && compare && key, "Invalid argument")) { return -1; } @@ -181,7 +186,7 @@ ssize_t list_lsearch(const list_t *list, int compare(const void *, const void *) } void list_foreach(list_t *list, void callback(void *)) { - if (!list || !callback) { + if (!sway_assert(list && callback, "Invalid argument")) { return; } @@ -194,7 +199,7 @@ void list_foreach(list_t *list, void callback(void *)) { } void *list_end(list_t *list) { - if (!list) { + if (!sway_assert(list, "Invalid argument")) { return NULL; } diff --git a/include/list.h b/include/list.h index fd5015137..52197bb6a 100644 --- a/include/list.h +++ b/include/list.h @@ -23,6 +23,7 @@ list_t *list_new(size_t memb_size, size_t capacity); /* * Frees a list. + * If list is null, no action is taken. */ void list_free(list_t *list); @@ -76,7 +77,7 @@ void list_isort(list_t *list, int compare(const void *, const void *)); * The list must be sorted. */ ssize_t list_bsearch(const list_t *list, int compare(const void *, const void *), - const void *key, void *ret); + const void *key, void *ret); /* * Returns the index of the key in the list, using a linear search, @@ -84,7 +85,7 @@ ssize_t list_bsearch(const list_t *list, int compare(const void *, const void *) * copied into it. */ ssize_t list_lsearch(const list_t *list, int compare(const void *, const void *), - const void *key, void *ret); + const void *key, void *ret); /* * Calls a function on every item in the list. @@ -101,7 +102,6 @@ void list_foreach(list_t *list, void callback(void *)); * printf("%s\n", *ptr); * } */ -// Consider making this inline or __attribute__((pure))__ void *list_end(list_t *list); #endif