diff --git a/src/array.c b/src/array.c index f9140eb..3fa7e96 100644 --- a/src/array.c +++ b/src/array.c @@ -42,13 +42,13 @@ struct _array { array array_init(const int element_count, const size_t data_size) { struct _array *const init = malloc(sizeof(struct _array)); - if (init == NULL) { + if (!init) { return NULL; } init->data_size = data_size; init->element_count = element_count; init->data = calloc((size_t) element_count, data_size); - if (init->data == NULL) { + if (!init->data) { free(init); return NULL; } diff --git a/src/deque.c b/src/deque.c index 16f5b5e..cf5cfe3 100644 --- a/src/deque.c +++ b/src/deque.c @@ -51,7 +51,7 @@ struct node { deque deque_init(const size_t data_size) { struct _deque *const init = malloc(sizeof(struct _deque)); - if (init == NULL) { + if (!init) { return NULL; } init->data_size = data_size; @@ -59,13 +59,13 @@ deque deque_init(const size_t data_size) init->end_index = init->start_index + 1; init->block_count = 1; init->block = malloc(sizeof(struct node)); - if (init->block == NULL) { + if (!init->block) { free(init); return NULL; } struct node *const block = init->block; block->data = malloc(BLOCK_SIZE * init->data_size); - if (block->data == NULL) { + if (!block->data) { free(init->block); free(init); return NULL; @@ -114,7 +114,7 @@ int deque_trim(deque me) const int end_block = me->end_index / BLOCK_SIZE; const int new_block_count = end_block - start_block + 1; void *const new_block = malloc(new_block_count * sizeof(struct node)); - if (new_block == NULL) { + if (!new_block) { return -ENOMEM; } for (int i = 0; i < start_block; i++) { @@ -172,7 +172,7 @@ int deque_push_front(deque me, void *const data) const int added_blocks = new_block_count - old_block_count; void *temp = realloc(me->block, new_block_count * sizeof(struct node)); - if (temp == NULL) { + if (!temp) { return -ENOMEM; } me->block = temp; @@ -189,9 +189,9 @@ int deque_push_front(deque me, void *const data) } } struct node *const block_item = &me->block[block_index]; - if (block_item->data == NULL) { + if (!block_item->data) { block_item->data = malloc(BLOCK_SIZE * me->data_size); - if (block_item->data == NULL) { + if (!block_item->data) { return -ENOMEM; } } @@ -221,7 +221,7 @@ int deque_push_back(deque me, void *const data) (int) ceil(RESIZE_RATIO * me->block_count); void *temp = realloc(me->block, new_block_count * sizeof(struct node)); - if (temp == NULL) { + if (!temp) { return -ENOMEM; } me->block = temp; @@ -232,9 +232,9 @@ int deque_push_back(deque me, void *const data) } } struct node *const block_item = &me->block[block_index]; - if (block_item->data == NULL) { + if (!block_item->data) { block_item->data = malloc(BLOCK_SIZE * me->data_size); - if (block_item->data == NULL) { + if (!block_item->data) { return -ENOMEM; } } @@ -402,11 +402,11 @@ int deque_get_last(void *const data, deque me) int deque_clear(deque me) { struct node *const temp_block = malloc(sizeof(struct node)); - if (temp_block == NULL) { + if (!temp_block) { return -ENOMEM; } void *const temp_block_data = malloc(BLOCK_SIZE * me->data_size); - if (temp_block_data == NULL) { + if (!temp_block_data) { free(temp_block); return -ENOMEM; } diff --git a/src/forward_list.c b/src/forward_list.c index 5fe4e39..0763a77 100644 --- a/src/forward_list.c +++ b/src/forward_list.c @@ -46,7 +46,7 @@ struct node { forward_list forward_list_init(const size_t data_size) { struct _forward_list *const init = malloc(sizeof(struct _forward_list)); - if (init == NULL) { + if (!init) { return NULL; } init->data_size = data_size; @@ -89,7 +89,7 @@ void forward_list_copy_to_array(void *const arr, forward_list me) { struct node *traverse = me->head; int offset = 0; - while (traverse != NULL) { + while (traverse) { memcpy(arr + offset, traverse->data, me->data_size); offset += me->data_size; traverse = traverse->next; @@ -139,11 +139,11 @@ int forward_list_add_at(forward_list me, const int index, void *const data) return -EINVAL; } struct node *const add = malloc(sizeof(struct node)); - if (add == NULL) { + if (!add) { return -ENOMEM; } add->data = malloc(me->data_size); - if (add->data == NULL) { + if (!add->data) { free(add); return -ENOMEM; } @@ -347,7 +347,7 @@ int forward_list_get_last(void *const data, forward_list me) void forward_list_clear(forward_list me) { struct node *traverse = me->head; - while (traverse != NULL) { + while (traverse) { struct node *const temp = traverse; traverse = traverse->next; free(temp->data); diff --git a/src/list.c b/src/list.c index ad80d07..8c12fca 100644 --- a/src/list.c +++ b/src/list.c @@ -48,7 +48,7 @@ struct node { list list_init(const size_t data_size) { struct _list *const init = malloc(sizeof(struct _list)); - if (init == NULL) { + if (!init) { return NULL; } init->data_size = data_size; @@ -92,7 +92,7 @@ void list_copy_to_array(void *const arr, list me) { struct node *traverse = me->head; int offset = 0; - while (traverse != NULL) { + while (traverse) { memcpy(arr + offset, traverse->data, me->data_size); offset += me->data_size; traverse = traverse->next; @@ -148,22 +148,22 @@ int list_add_first(list me, void *const data) { struct node *const traverse = me->head; struct node *const add = malloc(sizeof(struct node)); - if (add == NULL) { + if (!add) { return -ENOMEM; } add->data = malloc(me->data_size); - if (add->data == NULL) { + if (!add->data) { free(add); return -ENOMEM; } add->prev = NULL; memcpy(add->data, data, me->data_size); add->next = traverse; - if (traverse != NULL) { + if (traverse) { traverse->prev = add; } me->head = add; - if (me->tail == NULL) { + if (!me->tail) { me->tail = traverse; } me->space++; @@ -195,11 +195,11 @@ int list_add_at(list me, const int index, void *const data) // The new node will go right before this node. struct node *const traverse = list_get_node_at(me, index); struct node *const add = malloc(sizeof(struct node)); - if (add == NULL) { + if (!add) { return -ENOMEM; } add->data = malloc(me->data_size); - if (add->data == NULL) { + if (!add->data) { free(add); return -ENOMEM; } @@ -225,18 +225,18 @@ int list_add_last(list me, void *const data) { struct node *const traverse = me->tail; struct node *const add = malloc(sizeof(struct node)); - if (add == NULL) { + if (!add) { return -ENOMEM; } add->data = malloc(me->data_size); - if (add->data == NULL) { + if (!add->data) { free(add); return -ENOMEM; } add->prev = traverse; memcpy(add->data, data, me->data_size); add->next = NULL; - if (traverse != NULL) { + if (traverse) { traverse->next = add; } me->tail = add; @@ -413,7 +413,7 @@ int list_get_last(void *const data, list me) void list_clear(list me) { struct node *traverse = me->head; - while (traverse != NULL) { + while (traverse) { struct node *const temp = traverse; traverse = traverse->next; free(temp->data); diff --git a/src/map.c b/src/map.c index 1302b01..f3b737d 100644 --- a/src/map.c +++ b/src/map.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 Bailey Thompson + * Copyright (c) 2017-2018 Bailey Thompson * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -57,7 +57,7 @@ map map_init(const size_t key_size, int (*const comparator)(const void *const, const void *const)) { struct _map *const init = malloc(sizeof(struct _map)); - if (init == NULL) { + if (!init) { return NULL; } init->key_size = key_size; @@ -100,7 +100,7 @@ static void map_reference_parent(map me, struct node *const child) { child->parent = parent->parent; - if (parent->parent == NULL) { + if (!parent->parent) { me->root = child; } else if (parent->parent->left == parent) { parent->parent->left = child; @@ -118,7 +118,7 @@ static void map_rotate_left(map me, { map_reference_parent(me, parent, child); struct node *const grand_child = child->left; - if (grand_child != NULL) { + if (grand_child) { grand_child->parent = parent; } parent->parent = child; @@ -135,7 +135,7 @@ static void map_rotate_right(map me, { map_reference_parent(me, parent, child); struct node *const grand_child = child->right; - if (grand_child != NULL) { + if (grand_child) { grand_child->parent = parent; } parent->parent = child; @@ -217,7 +217,7 @@ static void map_insert_balance(map me, struct node *const item) struct node *grand_child = NULL; struct node *child = item; struct node *parent = item->parent; - while (parent != NULL) { + while (parent) { if (parent->left == child) { parent->balance--; } else { @@ -248,19 +248,19 @@ static struct node *map_create_node(map me, struct node *const parent) { struct node *const insert = malloc(sizeof(struct node)); - if (insert == NULL) { + if (!insert) { return NULL; } insert->parent = parent; insert->balance = 0; insert->key = malloc(me->key_size); - if (insert->key == NULL) { + if (!insert->key) { free(insert); return NULL; } memcpy(insert->key, key, me->key_size); insert->value = malloc(me->value_size); - if (insert->value == NULL) { + if (!insert->value) { free(insert->key); free(insert); return NULL; @@ -285,9 +285,9 @@ static struct node *map_create_node(map me, */ int map_put(map me, void *const key, void *const value) { - if (me->root == NULL) { + if (!me->root) { struct node *insert = map_create_node(me, key, value, NULL); - if (insert == NULL) { + if (!insert) { return -ENOMEM; } me->root = insert; @@ -297,11 +297,11 @@ int map_put(map me, void *const key, void *const value) while (true) { const int compare = me->comparator(key, traverse->key); if (compare < 0) { - if (traverse->left != NULL) { + if (traverse->left) { traverse = traverse->left; } else { struct node *insert = map_create_node(me, key, value, traverse); - if (insert == NULL) { + if (!insert) { return -ENOMEM; } traverse->left = insert; @@ -309,11 +309,11 @@ int map_put(map me, void *const key, void *const value) return 0; } } else if (compare > 0) { - if (traverse->right != NULL) { + if (traverse->right) { traverse = traverse->right; } else { struct node *insert = map_create_node(me, key, value, traverse); - if (insert == NULL) { + if (!insert) { return -ENOMEM; } traverse->right = insert; @@ -333,19 +333,19 @@ int map_put(map me, void *const key, void *const value) static struct node *map_equal_match(map me, const void *const key) { struct node *traverse = me->root; - if (traverse == NULL) { + if (!traverse) { return false; } while (true) { const int compare = me->comparator(key, traverse->key); if (compare < 0) { - if (traverse->left != NULL) { + if (traverse->left) { traverse = traverse->left; } else { return NULL; } } else if (compare > 0) { - if (traverse->right != NULL) { + if (traverse->right) { traverse = traverse->right; } else { return NULL; @@ -368,7 +368,7 @@ static struct node *map_equal_match(map me, const void *const key) bool map_get(void *const value, map me, void *const key) { struct node *const traverse = map_equal_match(me, key); - if (traverse == NULL) { + if (!traverse) { return false; } memcpy(value, traverse->value, me->value_size); @@ -420,13 +420,13 @@ static void map_delete_balance(map me, // Must re-balance if not in {-1, 0, 1} if (item->balance > 1 || item->balance < -1) { item = map_repair_pivot(me, item, is_left_deleted); - if (item->parent == NULL || item->balance == -1 || item->balance == 1) { + if (!item->parent || item->balance == -1 || item->balance == 1) { return; } } struct node *child = item; struct node *parent = item->parent; - while (parent != NULL) { + while (parent) { if (parent->left == child) { parent->balance++; } else { @@ -442,7 +442,7 @@ static void map_delete_balance(map me, parent = child->parent; // If balance is -1 or +1 after modification or the parent is NULL, // then the tree is balanced. - if (parent == NULL || child->balance == -1 || child->balance == 1) { + if (!parent || child->balance == -1 || child->balance == 1) { return; } } else { @@ -459,7 +459,7 @@ static void map_remove_no_children(map me, const struct node *const traverse) { struct node *const parent = traverse->parent; // If no parent and no children, then the only node is traverse. - if (parent == NULL) { + if (!parent) { me->root = NULL; return; } @@ -480,8 +480,8 @@ static void map_remove_one_child(map me, const struct node *const traverse) { struct node *const parent = traverse->parent; // If no parent, make the child of traverse the new root. - if (parent == NULL) { - if (traverse->left != NULL) { + if (!parent) { + if (traverse->left) { traverse->left->parent = NULL; me->root = traverse->left; } else { @@ -492,7 +492,7 @@ static void map_remove_one_child(map me, const struct node *const traverse) } // The parent of traverse now references the child of traverse. if (parent->left == traverse) { - if (traverse->left != NULL) { + if (traverse->left) { parent->left = traverse->left; traverse->left->parent = parent; } else { @@ -501,7 +501,7 @@ static void map_remove_one_child(map me, const struct node *const traverse) } map_delete_balance(me, parent, true); } else { - if (traverse->left != NULL) { + if (traverse->left) { parent->right = traverse->left; traverse->left->parent = parent; } else { @@ -529,13 +529,13 @@ static void map_remove_two_children(map me, const struct node *const traverse) item->left->parent = item; } else { item = traverse->right->left; - while (item->left != NULL) { + while (item->left) { item = item->left; } parent = item->parent; item->balance = traverse->balance; item->parent->left = item->right; - if (item->right != NULL) { + if (item->right) { item->right->parent = item->parent; } item->left = traverse->left; @@ -544,7 +544,7 @@ static void map_remove_two_children(map me, const struct node *const traverse) item->right->parent = item; item->parent = traverse->parent; } - if (traverse->parent == NULL) { + if (!traverse->parent) { me->root = item; } else if (traverse->parent->left == traverse) { item->parent->left = item; @@ -559,9 +559,9 @@ static void map_remove_two_children(map me, const struct node *const traverse) */ static void map_remove_element(map me, struct node *const traverse) { - if (traverse->left == NULL && traverse->right == NULL) { + if (!traverse->left && !traverse->right) { map_remove_no_children(me, traverse); - } else if (traverse->left == NULL || traverse->right == NULL) { + } else if (!traverse->left || !traverse->right) { map_remove_one_child(me, traverse); } else { map_remove_two_children(me, traverse); @@ -583,7 +583,7 @@ static void map_remove_element(map me, struct node *const traverse) bool map_remove(map me, void *const key) { struct node *const traverse = map_equal_match(me, key); - if (traverse == NULL) { + if (!traverse) { return false; } map_remove_element(me, traverse); @@ -597,7 +597,7 @@ bool map_remove(map me, void *const key) */ void map_clear(map me) { - while (me->root != NULL) { + while (me->root) { map_remove_element(me, me->root); } } diff --git a/src/multimap.c b/src/multimap.c index a15c28e..72d5993 100644 --- a/src/multimap.c +++ b/src/multimap.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 Bailey Thompson + * Copyright (c) 2017-2018 Bailey Thompson * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -69,7 +69,7 @@ multimap multimap_init(const size_t key_size, const void *const)) { struct _multimap *const init = malloc(sizeof(struct _multimap)); - if (init == NULL) { + if (!init) { return NULL; } init->key_size = key_size; @@ -114,7 +114,7 @@ static void multimap_reference_parent(multimap me, struct node *const child) { child->parent = parent->parent; - if (parent->parent == NULL) { + if (!parent->parent) { me->root = child; } else if (parent->parent->left == parent) { parent->parent->left = child; @@ -132,7 +132,7 @@ static void multimap_rotate_left(multimap me, { multimap_reference_parent(me, parent, child); struct node *const grand_child = child->left; - if (grand_child != NULL) { + if (grand_child) { grand_child->parent = parent; } parent->parent = child; @@ -149,7 +149,7 @@ static void multimap_rotate_right(multimap me, { multimap_reference_parent(me, parent, child); struct node *const grand_child = child->right; - if (grand_child != NULL) { + if (grand_child) { grand_child->parent = parent; } parent->parent = child; @@ -231,7 +231,7 @@ static void multimap_insert_balance(multimap me, struct node *const item) struct node *grand_child = NULL; struct node *child = item; struct node *parent = item->parent; - while (parent != NULL) { + while (parent) { if (parent->left == child) { parent->balance--; } else { @@ -260,11 +260,11 @@ static struct value_node *multimap_create_value_node(multimap me, const void *const value) { struct value_node *const add = malloc(sizeof(struct value_node)); - if (add == NULL) { + if (!add) { return NULL; } add->value = malloc(me->value_size); - if (add->value == NULL) { + if (!add->value) { free(add); return NULL; } @@ -282,20 +282,20 @@ static struct node *multimap_create_node(multimap me, struct node *const parent) { struct node *const insert = malloc(sizeof(struct node)); - if (insert == NULL) { + if (!insert) { return NULL; } insert->parent = parent; insert->balance = 0; insert->key = malloc(me->key_size); - if (insert->key == NULL) { + if (!insert->key) { free(insert); return NULL; } memcpy(insert->key, key, me->key_size); insert->value_count = 1; insert->head = multimap_create_value_node(me, value); - if (insert->head == NULL) { + if (!insert->head) { free(insert->key); free(insert); return NULL; @@ -318,9 +318,9 @@ static struct node *multimap_create_node(multimap me, */ int multimap_put(multimap me, void *const key, void *const value) { - if (me->root == NULL) { + if (!me->root) { struct node *insert = multimap_create_node(me, key, value, NULL); - if (insert == NULL) { + if (!insert) { return -ENOMEM; } me->root = insert; @@ -330,12 +330,12 @@ int multimap_put(multimap me, void *const key, void *const value) while (true) { const int compare = me->key_comparator(key, traverse->key); if (compare < 0) { - if (traverse->left != NULL) { + if (traverse->left) { traverse = traverse->left; } else { struct node *insert = multimap_create_node(me, key, value, traverse); - if (insert == NULL) { + if (!insert) { return -ENOMEM; } traverse->left = insert; @@ -343,12 +343,12 @@ int multimap_put(multimap me, void *const key, void *const value) return 0; } } else if (compare > 0) { - if (traverse->right != NULL) { + if (traverse->right) { traverse = traverse->right; } else { struct node *insert = multimap_create_node(me, key, value, traverse); - if (insert == NULL) { + if (!insert) { return -ENOMEM; } traverse->right = insert; @@ -357,7 +357,7 @@ int multimap_put(multimap me, void *const key, void *const value) } } else { struct value_node *value_traverse = traverse->head; - while (value_traverse->next != NULL) { + while (value_traverse->next) { value_traverse = value_traverse->next; } value_traverse->next = multimap_create_value_node(me, value); @@ -374,19 +374,19 @@ int multimap_put(multimap me, void *const key, void *const value) static struct node *multimap_equal_match(multimap me, const void *const key) { struct node *traverse = me->root; - if (traverse == NULL) { + if (!traverse) { return false; } while (true) { const int compare = me->key_comparator(key, traverse->key); if (compare < 0) { - if (traverse->left != NULL) { + if (traverse->left) { traverse = traverse->left; } else { return NULL; } } else if (compare > 0) { - if (traverse->right != NULL) { + if (traverse->right) { traverse = traverse->right; } else { return NULL; @@ -408,7 +408,7 @@ static struct node *multimap_equal_match(multimap me, const void *const key) void multimap_get_start(multimap me, void *const key) { const struct node *const traverse = multimap_equal_match(me, key); - if (traverse != NULL) { + if (traverse) { me->iterate_get = traverse->head; } } @@ -425,7 +425,7 @@ void multimap_get_start(multimap me, void *const key) */ bool multimap_get_next(void *const value, multimap me) { - if (me->iterate_get == NULL) { + if (!me->iterate_get) { return false; } const struct value_node *const item = me->iterate_get; @@ -445,7 +445,7 @@ bool multimap_get_next(void *const value, multimap me) int multimap_count(multimap me, void *const key) { struct node *const traverse = multimap_equal_match(me, key); - if (traverse == NULL) { + if (!traverse) { return 0; } return traverse->value_count; @@ -496,13 +496,13 @@ static void multimap_delete_balance(multimap me, // Must re-balance if not in {-1, 0, 1} if (item->balance > 1 || item->balance < -1) { item = multimap_repair_pivot(me, item, is_left_deleted); - if (item->parent == NULL || item->balance == -1 || item->balance == 1) { + if (!item->parent || item->balance == -1 || item->balance == 1) { return; } } struct node *child = item; struct node *parent = item->parent; - while (parent != NULL) { + while (parent) { if (parent->left == child) { parent->balance++; } else { @@ -518,7 +518,7 @@ static void multimap_delete_balance(multimap me, parent = child->parent; // If balance is -1 or +1 after modification or the parent is NULL, // then the tree is balanced. - if (parent == NULL || child->balance == -1 || child->balance == 1) { + if (!parent || child->balance == -1 || child->balance == 1) { return; } } else { @@ -536,7 +536,7 @@ static void multimap_remove_no_children(multimap me, { struct node *const parent = traverse->parent; // If no parent and no children, then the only node is traverse. - if (parent == NULL) { + if (!parent) { me->root = NULL; return; } @@ -558,8 +558,8 @@ static void multimap_remove_one_child(multimap me, { struct node *const parent = traverse->parent; // If no parent, make the child of traverse the new root. - if (parent == NULL) { - if (traverse->left != NULL) { + if (!parent) { + if (traverse->left) { traverse->left->parent = NULL; me->root = traverse->left; } else { @@ -570,7 +570,7 @@ static void multimap_remove_one_child(multimap me, } // The parent of traverse now references the child of traverse. if (parent->left == traverse) { - if (traverse->left != NULL) { + if (traverse->left) { parent->left = traverse->left; traverse->left->parent = parent; } else { @@ -579,7 +579,7 @@ static void multimap_remove_one_child(multimap me, } multimap_delete_balance(me, parent, true); } else { - if (traverse->left != NULL) { + if (traverse->left) { parent->right = traverse->left; traverse->left->parent = parent; } else { @@ -608,13 +608,13 @@ static void multimap_remove_two_children(multimap me, item->left->parent = item; } else { item = traverse->right->left; - while (item->left != NULL) { + while (item->left) { item = item->left; } parent = item->parent; item->balance = traverse->balance; item->parent->left = item->right; - if (item->right != NULL) { + if (item->right) { item->right->parent = item->parent; } item->left = traverse->left; @@ -623,7 +623,7 @@ static void multimap_remove_two_children(multimap me, item->right->parent = item; item->parent = traverse->parent; } - if (traverse->parent == NULL) { + if (!traverse->parent) { me->root = item; } else if (traverse->parent->left == traverse) { item->parent->left = item; @@ -638,9 +638,9 @@ static void multimap_remove_two_children(multimap me, */ static void multimap_remove_element(multimap me, struct node *const traverse) { - if (traverse->left == NULL && traverse->right == NULL) { + if (!traverse->left && !traverse->right) { multimap_remove_no_children(me, traverse); - } else if (traverse->left == NULL || traverse->right == NULL) { + } else if (!traverse->left || !traverse->right) { multimap_remove_one_child(me, traverse); } else { multimap_remove_two_children(me, traverse); @@ -661,7 +661,7 @@ static void multimap_remove_element(multimap me, struct node *const traverse) bool multimap_remove(multimap me, void *const key, void *const value) { struct node *const traverse = multimap_equal_match(me, key); - if (traverse == NULL) { + if (!traverse) { return false; } struct value_node *current = traverse->head; @@ -670,12 +670,11 @@ bool multimap_remove(multimap me, void *const key, void *const value) } else { struct value_node *previous = current; current = current->next; - while (current != NULL && - me->value_comparator(current->value, value) != 0) { + while (current && me->value_comparator(current->value, value) != 0) { previous = current; current = current->next; } - if (current == NULL) { + if (!current) { return false; } previous->next = current->next; @@ -697,7 +696,7 @@ static void multimap_remove_all_element(multimap me, struct node *const traverse) { struct value_node *value_traverse = traverse->head; - while (value_traverse != NULL) { + while (value_traverse) { struct value_node *temp = value_traverse; value_traverse = value_traverse->next; free(temp->value); @@ -718,7 +717,7 @@ static void multimap_remove_all_element(multimap me, bool multimap_remove_all(multimap me, void *const key) { struct node *const traverse = multimap_equal_match(me, key); - if (traverse == NULL) { + if (!traverse) { return false; } multimap_remove_all_element(me, traverse); @@ -732,7 +731,7 @@ bool multimap_remove_all(multimap me, void *const key) */ void multimap_clear(multimap me) { - while (me->root != NULL) { + while (me->root) { multimap_remove_all_element(me, me->root); } } diff --git a/src/multiset.c b/src/multiset.c index b09fb85..ae0a9cd 100644 --- a/src/multiset.c +++ b/src/multiset.c @@ -55,7 +55,7 @@ multiset multiset_init(const size_t key_size, const void *const)) { struct _multiset *const init = malloc(sizeof(struct _multiset)); - if (init == NULL) { + if (!init) { return NULL; } init->key_size = key_size; @@ -97,7 +97,7 @@ static void multiset_reference_parent(multiset me, struct node *const child) { child->parent = parent->parent; - if (parent->parent == NULL) { + if (!parent->parent) { me->root = child; } else if (parent->parent->left == parent) { parent->parent->left = child; @@ -115,7 +115,7 @@ static void multiset_rotate_left(multiset me, { multiset_reference_parent(me, parent, child); struct node *const grand_child = child->left; - if (grand_child != NULL) { + if (grand_child) { grand_child->parent = parent; } parent->parent = child; @@ -132,7 +132,7 @@ static void multiset_rotate_right(multiset me, { multiset_reference_parent(me, parent, child); struct node *const grand_child = child->right; - if (grand_child != NULL) { + if (grand_child) { grand_child->parent = parent; } parent->parent = child; @@ -214,7 +214,7 @@ static void multiset_insert_balance(multiset me, struct node *const item) struct node *grand_child = NULL; struct node *child = item; struct node *parent = item->parent; - while (parent != NULL) { + while (parent) { if (parent->left == child) { parent->balance--; } else { @@ -244,14 +244,14 @@ static struct node *multiset_create_node(multiset me, struct node *const parent) { struct node *const insert = malloc(sizeof(struct node)); - if (insert == NULL) { + if (!insert) { return NULL; } insert->count = 1; insert->parent = parent; insert->balance = 0; insert->key = malloc(me->key_size); - if (insert->key == NULL) { + if (!insert->key) { free(insert); return NULL; } @@ -273,9 +273,9 @@ static struct node *multiset_create_node(multiset me, */ int multiset_put(multiset me, void *const key) { - if (me->root == NULL) { + if (!me->root) { struct node *insert = multiset_create_node(me, key, NULL); - if (insert == NULL) { + if (!insert) { return -ENOMEM; } me->root = insert; @@ -285,11 +285,11 @@ int multiset_put(multiset me, void *const key) while (true) { const int compare = me->comparator(key, traverse->key); if (compare < 0) { - if (traverse->left != NULL) { + if (traverse->left) { traverse = traverse->left; } else { struct node *insert = multiset_create_node(me, key, traverse); - if (insert == NULL) { + if (!insert) { return -ENOMEM; } traverse->left = insert; @@ -297,11 +297,11 @@ int multiset_put(multiset me, void *const key) return 0; } } else if (compare > 0) { - if (traverse->right != NULL) { + if (traverse->right) { traverse = traverse->right; } else { struct node *insert = multiset_create_node(me, key, traverse); - if (insert == NULL) { + if (!insert) { return -ENOMEM; } traverse->right = insert; @@ -322,19 +322,19 @@ int multiset_put(multiset me, void *const key) static struct node *multiset_equal_match(multiset me, const void *const key) { struct node *traverse = me->root; - if (traverse == NULL) { + if (!traverse) { return false; } while (true) { const int compare = me->comparator(key, traverse->key); if (compare < 0) { - if (traverse->left != NULL) { + if (traverse->left) { traverse = traverse->left; } else { return NULL; } } else if (compare > 0) { - if (traverse->right != NULL) { + if (traverse->right) { traverse = traverse->right; } else { return NULL; @@ -356,7 +356,7 @@ static struct node *multiset_equal_match(multiset me, const void *const key) int multiset_count(multiset me, void *const key) { const struct node *const item = multiset_equal_match(me, key); - if (item == NULL) { + if (!item) { return 0; } return item->count; @@ -407,13 +407,13 @@ static void multiset_delete_balance(multiset me, // Must re-balance if not in {-1, 0, 1} if (item->balance > 1 || item->balance < -1) { item = multiset_repair_pivot(me, item, is_left_deleted); - if (item->parent == NULL || item->balance == -1 || item->balance == 1) { + if (!item->parent || item->balance == -1 || item->balance == 1) { return; } } struct node *child = item; struct node *parent = item->parent; - while (parent != NULL) { + while (parent) { if (parent->left == child) { parent->balance++; } else { @@ -429,7 +429,7 @@ static void multiset_delete_balance(multiset me, parent = child->parent; // If balance is -1 or +1 after modification or the parent is NULL, // then the tree is balanced. - if (parent == NULL || child->balance == -1 || child->balance == 1) { + if (!parent || child->balance == -1 || child->balance == 1) { return; } } else { @@ -447,7 +447,7 @@ static void multiset_remove_no_children(multiset me, { struct node *const parent = traverse->parent; // If no parent and no children, then the only node is traverse. - if (parent == NULL) { + if (!parent) { me->root = NULL; return; } @@ -469,8 +469,8 @@ static void multiset_remove_one_child(multiset me, { struct node *const parent = traverse->parent; // If no parent, make the child of traverse the new root. - if (parent == NULL) { - if (traverse->left != NULL) { + if (!parent) { + if (traverse->left) { traverse->left->parent = NULL; me->root = traverse->left; } else { @@ -481,7 +481,7 @@ static void multiset_remove_one_child(multiset me, } // The parent of traverse now references the child of traverse. if (parent->left == traverse) { - if (traverse->left != NULL) { + if (traverse->left) { parent->left = traverse->left; traverse->left->parent = parent; } else { @@ -490,7 +490,7 @@ static void multiset_remove_one_child(multiset me, } multiset_delete_balance(me, parent, true); } else { - if (traverse->left != NULL) { + if (traverse->left) { parent->right = traverse->left; traverse->left->parent = parent; } else { @@ -519,13 +519,13 @@ static void multiset_remove_two_children(multiset me, item->left->parent = item; } else { item = traverse->right->left; - while (item->left != NULL) { + while (item->left) { item = item->left; } parent = item->parent; item->balance = traverse->balance; item->parent->left = item->right; - if (item->right != NULL) { + if (item->right) { item->right->parent = item->parent; } item->left = traverse->left; @@ -534,7 +534,7 @@ static void multiset_remove_two_children(multiset me, item->right->parent = item; item->parent = traverse->parent; } - if (traverse->parent == NULL) { + if (!traverse->parent) { me->root = item; } else if (traverse->parent->left == traverse) { item->parent->left = item; @@ -549,9 +549,9 @@ static void multiset_remove_two_children(multiset me, */ static void multiset_remove_element(multiset me, struct node *const traverse) { - if (traverse->left == NULL && traverse->right == NULL) { + if (!traverse->left && !traverse->right) { multiset_remove_no_children(me, traverse); - } else if (traverse->left == NULL || traverse->right == NULL) { + } else if (!traverse->left || !traverse->right) { multiset_remove_one_child(me, traverse); } else { multiset_remove_two_children(me, traverse); @@ -571,7 +571,7 @@ static void multiset_remove_element(multiset me, struct node *const traverse) bool multiset_remove(multiset me, void *const key) { struct node *const traverse = multiset_equal_match(me, key); - if (traverse == NULL) { + if (!traverse) { return false; } traverse->count--; @@ -593,7 +593,7 @@ bool multiset_remove(multiset me, void *const key) bool multiset_remove_all(multiset me, void *const key) { struct node *const traverse = multiset_equal_match(me, key); - if (traverse == NULL) { + if (!traverse) { return false; } me->size -= traverse->count; @@ -608,7 +608,7 @@ bool multiset_remove_all(multiset me, void *const key) */ void multiset_clear(multiset me) { - while (me->root != NULL) { + while (me->root) { multiset_remove_element(me, me->root); } me->size = 0; diff --git a/src/priority_queue.c b/src/priority_queue.c index 1cf9968..d94cff3 100644 --- a/src/priority_queue.c +++ b/src/priority_queue.c @@ -47,12 +47,12 @@ priority_queue priority_queue_init(const size_t data_size, const void *const)) { struct _priority_queue *const init = malloc(sizeof(struct _priority_queue)); - if (init == NULL) { + if (!init) { return NULL; } init->data_size = data_size; init->data = vector_init(data_size); - if (init->data == NULL) { + if (!init->data) { free(init); return NULL; } @@ -96,7 +96,7 @@ bool priority_queue_is_empty(priority_queue me) int priority_queue_push(priority_queue me, void *const data) { void *const temp = malloc(me->data_size); - if (temp == NULL) { + if (!temp) { return -ENOMEM; } const int rc = vector_add_last(me->data, data); diff --git a/src/queue.c b/src/queue.c index 8a1be19..c45deeb 100644 --- a/src/queue.c +++ b/src/queue.c @@ -42,12 +42,12 @@ struct _queue { queue queue_init(const size_t data_size) { struct _queue *const init = malloc(sizeof(struct _queue)); - if (init == NULL) { + if (!init) { return NULL; } init->trim_count = 0; init->deque_data = deque_init(data_size); - if (init->deque_data == NULL) { + if (!init->deque_data) { free(init); return NULL; } diff --git a/src/set.c b/src/set.c index 16b77bb..35d3d94 100644 --- a/src/set.c +++ b/src/set.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 Bailey Thompson + * Copyright (c) 2017-2018 Bailey Thompson * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -52,7 +52,7 @@ set set_init(const size_t key_size, int (*const comparator)(const void *const, const void *const)) { struct _set *const init = malloc(sizeof(struct _set)); - if (init == NULL) { + if (!init) { return NULL; } init->key_size = key_size; @@ -94,7 +94,7 @@ static void set_reference_parent(set me, struct node *const child) { child->parent = parent->parent; - if (parent->parent == NULL) { + if (!parent->parent) { me->root = child; } else if (parent->parent->left == parent) { parent->parent->left = child; @@ -112,7 +112,7 @@ static void set_rotate_left(set me, { set_reference_parent(me, parent, child); struct node *const grand_child = child->left; - if (grand_child != NULL) { + if (grand_child) { grand_child->parent = parent; } parent->parent = child; @@ -129,7 +129,7 @@ static void set_rotate_right(set me, { set_reference_parent(me, parent, child); struct node *const grand_child = child->right; - if (grand_child != NULL) { + if (grand_child) { grand_child->parent = parent; } parent->parent = child; @@ -211,7 +211,7 @@ static void set_insert_balance(set me, struct node *const item) struct node *grand_child = NULL; struct node *child = item; struct node *parent = item->parent; - while (parent != NULL) { + while (parent) { if (parent->left == child) { parent->balance--; } else { @@ -241,13 +241,13 @@ static struct node *set_create_node(set me, struct node *const parent) { struct node *const insert = malloc(sizeof(struct node)); - if (insert == NULL) { + if (!insert) { return NULL; } insert->parent = parent; insert->balance = 0; insert->key = malloc(me->key_size); - if (insert->key == NULL) { + if (!insert->key) { free(insert); return NULL; } @@ -269,9 +269,9 @@ static struct node *set_create_node(set me, */ int set_put(set me, void *const key) { - if (me->root == NULL) { + if (!me->root) { struct node *insert = set_create_node(me, key, NULL); - if (insert == NULL) { + if (!insert) { return -ENOMEM; } me->root = insert; @@ -281,11 +281,11 @@ int set_put(set me, void *const key) while (true) { const int compare = me->comparator(key, traverse->key); if (compare < 0) { - if (traverse->left != NULL) { + if (traverse->left) { traverse = traverse->left; } else { struct node *insert = set_create_node(me, key, traverse); - if (insert == NULL) { + if (!insert) { return -ENOMEM; } traverse->left = insert; @@ -293,11 +293,11 @@ int set_put(set me, void *const key) return 0; } } else if (compare > 0) { - if (traverse->right != NULL) { + if (traverse->right) { traverse = traverse->right; } else { struct node *insert = set_create_node(me, key, traverse); - if (insert == NULL) { + if (!insert) { return -ENOMEM; } traverse->right = insert; @@ -316,19 +316,19 @@ int set_put(set me, void *const key) static struct node *set_equal_match(set me, const void *const key) { struct node *traverse = me->root; - if (traverse == NULL) { + if (!traverse) { return false; } while (true) { const int compare = me->comparator(key, traverse->key); if (compare < 0) { - if (traverse->left != NULL) { + if (traverse->left) { traverse = traverse->left; } else { return NULL; } } else if (compare > 0) { - if (traverse->right != NULL) { + if (traverse->right) { traverse = traverse->right; } else { return NULL; @@ -384,13 +384,13 @@ static void set_delete_balance(set me, // Must re-balance if not in {-1, 0, 1} if (item->balance > 1 || item->balance < -1) { item = set_repair_pivot(me, item, is_left_deleted); - if (item->parent == NULL || item->balance == -1 || item->balance == 1) { + if (!item->parent || item->balance == -1 || item->balance == 1) { return; } } struct node *child = item; struct node *parent = item->parent; - while (parent != NULL) { + while (parent) { if (parent->left == child) { parent->balance++; } else { @@ -406,7 +406,7 @@ static void set_delete_balance(set me, parent = child->parent; // If balance is -1 or +1 after modification or the parent is NULL, // then the tree is balanced. - if (parent == NULL || child->balance == -1 || child->balance == 1) { + if (!parent || child->balance == -1 || child->balance == 1) { return; } } else { @@ -423,7 +423,7 @@ static void set_remove_no_children(set me, const struct node *const traverse) { struct node *const parent = traverse->parent; // If no parent and no children, then the only node is traverse. - if (parent == NULL) { + if (!parent) { me->root = NULL; return; } @@ -444,8 +444,8 @@ static void set_remove_one_child(set me, const struct node *const traverse) { struct node *const parent = traverse->parent; // If no parent, make the child of traverse the new root. - if (parent == NULL) { - if (traverse->left != NULL) { + if (!parent) { + if (traverse->left) { traverse->left->parent = NULL; me->root = traverse->left; } else { @@ -456,7 +456,7 @@ static void set_remove_one_child(set me, const struct node *const traverse) } // The parent of traverse now references the child of traverse. if (parent->left == traverse) { - if (traverse->left != NULL) { + if (traverse->left) { parent->left = traverse->left; traverse->left->parent = parent; } else { @@ -465,7 +465,7 @@ static void set_remove_one_child(set me, const struct node *const traverse) } set_delete_balance(me, parent, true); } else { - if (traverse->left != NULL) { + if (traverse->left) { parent->right = traverse->left; traverse->left->parent = parent; } else { @@ -493,13 +493,13 @@ static void set_remove_two_children(set me, const struct node *const traverse) item->left->parent = item; } else { item = traverse->right->left; - while (item->left != NULL) { + while (item->left) { item = item->left; } parent = item->parent; item->balance = traverse->balance; item->parent->left = item->right; - if (item->right != NULL) { + if (item->right) { item->right->parent = item->parent; } item->left = traverse->left; @@ -508,7 +508,7 @@ static void set_remove_two_children(set me, const struct node *const traverse) item->right->parent = item; item->parent = traverse->parent; } - if (traverse->parent == NULL) { + if (!traverse->parent) { me->root = item; } else if (traverse->parent->left == traverse) { item->parent->left = item; @@ -523,9 +523,9 @@ static void set_remove_two_children(set me, const struct node *const traverse) */ static void set_remove_element(set me, struct node *const traverse) { - if (traverse->left == NULL && traverse->right == NULL) { + if (!traverse->left && !traverse->right) { set_remove_no_children(me, traverse); - } else if (traverse->left == NULL || traverse->right == NULL) { + } else if (!traverse->left || !traverse->right) { set_remove_one_child(me, traverse); } else { set_remove_two_children(me, traverse); @@ -546,7 +546,7 @@ static void set_remove_element(set me, struct node *const traverse) bool set_remove(set me, void *const key) { struct node *const traverse = set_equal_match(me, key); - if (traverse == NULL) { + if (!traverse) { return false; } set_remove_element(me, traverse); @@ -560,7 +560,7 @@ bool set_remove(set me, void *const key) */ void set_clear(set me) { - while (me->root != NULL) { + while (me->root) { set_remove_element(me, me->root); } } diff --git a/src/stack.c b/src/stack.c index 026659e..60a1905 100644 --- a/src/stack.c +++ b/src/stack.c @@ -39,11 +39,11 @@ struct _stack { stack stack_init(const size_t data_size) { struct _stack *const init = malloc(sizeof(struct _stack)); - if (init == NULL) { + if (!init) { return NULL; } init->deque_data = deque_init(data_size); - if (init->deque_data == NULL) { + if (!init->deque_data) { free(init); return NULL; } diff --git a/src/unordered_map.c b/src/unordered_map.c index bf6aff4..6acff17 100644 --- a/src/unordered_map.c +++ b/src/unordered_map.c @@ -65,7 +65,7 @@ unordered_map unordered_map_init(const size_t key_size, const void *const)) { struct _unordered_map *const init = malloc(sizeof(struct _unordered_map)); - if (init == NULL) { + if (!init) { return NULL; } init->key_size = key_size; @@ -75,7 +75,7 @@ unordered_map unordered_map_init(const size_t key_size, init->size = 0; init->capacity = STARTING_BUCKETS; init->buckets = calloc(STARTING_BUCKETS, sizeof(struct node *)); - if (init->buckets == NULL) { + if (!init->buckets) { free(init); return NULL; } @@ -89,12 +89,12 @@ static void unordered_map_add_item(unordered_map me, struct node *const add) { const int index = (int) (add->hash % me->capacity); add->next = NULL; - if (me->buckets[index] == NULL) { + if (!me->buckets[index]) { me->buckets[index] = add; return; } struct node *traverse = me->buckets[index]; - while (traverse->next != NULL) { + while (traverse->next) { traverse = traverse->next; } traverse->next = add; @@ -113,13 +113,13 @@ int unordered_map_rehash(unordered_map me) { struct node **old_buckets = me->buckets; me->buckets = calloc((size_t) me->capacity, sizeof(struct node *)); - if (me->buckets == NULL) { + if (!me->buckets) { me->buckets = old_buckets; return -ENOMEM; } for (int i = 0; i < me->capacity; i++) { struct node *traverse = old_buckets[i]; - while (traverse != NULL) { + while (traverse) { struct node *const backup = traverse->next; traverse->hash = me->hash(traverse->key); unordered_map_add_item(me, traverse); @@ -163,14 +163,14 @@ static int unordered_map_resize(unordered_map me) const int new_capacity = (int) (me->capacity * RESIZE_RATIO); struct node **old_buckets = me->buckets; me->buckets = calloc((size_t) new_capacity, sizeof(struct node *)); - if (me->buckets == NULL) { + if (!me->buckets) { me->buckets = old_buckets; return -ENOMEM; } me->capacity = new_capacity; for (int i = 0; i < old_capacity; i++) { struct node *traverse = old_buckets[i]; - while (traverse != NULL) { + while (traverse) { struct node *const backup = traverse->next; unordered_map_add_item(me, traverse); traverse = backup; @@ -200,17 +200,17 @@ static struct node *const unordered_map_create_element(unordered_map me, const void *const value) { struct node *const init = malloc(sizeof(struct node)); - if (init == NULL) { + if (!init) { return NULL; } init->key = malloc(me->key_size); - if (init->key == NULL) { + if (!init->key) { free(init); return NULL; } memcpy(init->key, key, me->key_size); init->value = malloc(me->value_size); - if (init->value == NULL) { + if (!init->value) { free(init->key); free(init); return NULL; @@ -237,9 +237,9 @@ int unordered_map_put(unordered_map me, void *const key, void *const value) const unsigned long hash = me->hash(key); const int index = (int) (hash % me->capacity); - if (me->buckets[index] == NULL) { + if (!me->buckets[index]) { me->buckets[index] = unordered_map_create_element(me, hash, key, value); - if (me->buckets[index] == NULL) { + if (!me->buckets[index]) { return -ENOMEM; } } else { @@ -248,7 +248,7 @@ int unordered_map_put(unordered_map me, void *const key, void *const value) memcpy(traverse->value, value, me->value_size); return 0; } - while (traverse->next != NULL) { + while (traverse->next) { traverse = traverse->next; if (unordered_map_is_equal(me, traverse, hash, key)) { memcpy(traverse->value, value, me->value_size); @@ -256,7 +256,7 @@ int unordered_map_put(unordered_map me, void *const key, void *const value) } } traverse->next = unordered_map_create_element(me, hash, key, value); - if (traverse->next == NULL) { + if (!traverse->next) { return -ENOMEM; } } @@ -281,7 +281,7 @@ bool unordered_map_get(void *const value, unordered_map me, void *const key) const unsigned long hash = me->hash(key); const int index = (int) (hash % me->capacity); struct node *traverse = me->buckets[index]; - while (traverse != NULL) { + while (traverse) { if (unordered_map_is_equal(me, traverse, hash, key)) { memcpy(value, traverse->value, me->value_size); return true; @@ -304,7 +304,7 @@ bool unordered_map_contains(unordered_map me, void *const key) const unsigned long hash = me->hash(key); const int index = (int) (hash % me->capacity); const struct node *traverse = me->buckets[index]; - while (traverse != NULL) { + while (traverse) { if (unordered_map_is_equal(me, traverse, hash, key)) { return true; } @@ -325,7 +325,7 @@ bool unordered_map_remove(unordered_map me, void *const key) { const unsigned long hash = me->hash(key); const int index = (int) (hash % me->capacity); - if (me->buckets[index] == NULL) { + if (!me->buckets[index]) { return false; } struct node *traverse = me->buckets[index]; @@ -337,7 +337,7 @@ bool unordered_map_remove(unordered_map me, void *const key) me->size--; return true; } - while (traverse->next != NULL) { + while (traverse->next) { if (unordered_map_is_equal(me, traverse->next, hash, key)) { struct node *const backup = traverse->next; traverse->next = traverse->next->next; @@ -364,12 +364,12 @@ int unordered_map_clear(unordered_map me) { struct node **temp = calloc((size_t) STARTING_BUCKETS, sizeof(struct node *)); - if (temp == NULL) { + if (!temp) { return -ENOMEM; } for (int i = 0; i < me->capacity; i++) { struct node *traverse = me->buckets[i]; - while (traverse != NULL) { + while (traverse) { struct node *const backup = traverse; traverse = traverse->next; free(backup->key); diff --git a/src/unordered_multimap.c b/src/unordered_multimap.c index ee1abea..876b130 100644 --- a/src/unordered_multimap.c +++ b/src/unordered_multimap.c @@ -74,7 +74,7 @@ unordered_multimap_init(const size_t key_size, { struct _unordered_multimap *const init = malloc(sizeof(struct _unordered_multimap)); - if (init == NULL) { + if (!init) { return NULL; } init->key_size = key_size; @@ -85,13 +85,13 @@ unordered_multimap_init(const size_t key_size, init->size = 0; init->capacity = STARTING_BUCKETS; init->buckets = calloc(STARTING_BUCKETS, sizeof(struct node *)); - if (init->buckets == NULL) { + if (!init->buckets) { free(init); return NULL; } init->iterate_hash = 0; init->iterate_key = calloc(1, init->key_size); - if (init->iterate_key == NULL) { + if (!init->iterate_key) { free(init->buckets); free(init); return NULL; @@ -108,12 +108,12 @@ static void unordered_multimap_add_item(unordered_multimap me, { const int index = (int) (add->hash % me->capacity); add->next = NULL; - if (me->buckets[index] == NULL) { + if (!me->buckets[index]) { me->buckets[index] = add; return; } struct node *traverse = me->buckets[index]; - while (traverse->next != NULL) { + while (traverse->next) { traverse = traverse->next; } traverse->next = add; @@ -132,13 +132,13 @@ int unordered_multimap_rehash(unordered_multimap me) { struct node **old_buckets = me->buckets; me->buckets = calloc((size_t) me->capacity, sizeof(struct node *)); - if (me->buckets == NULL) { + if (!me->buckets) { me->buckets = old_buckets; return -ENOMEM; } for (int i = 0; i < me->capacity; i++) { struct node *traverse = old_buckets[i]; - while (traverse != NULL) { + while (traverse) { struct node *const backup = traverse->next; traverse->hash = me->hash(traverse->key); unordered_multimap_add_item(me, traverse); @@ -182,14 +182,14 @@ static int unordered_multimap_resize(unordered_multimap me) const int new_capacity = (int) (me->capacity * RESIZE_RATIO); struct node **old_buckets = me->buckets; me->buckets = calloc((size_t) new_capacity, sizeof(struct node *)); - if (me->buckets == NULL) { + if (!me->buckets) { me->buckets = old_buckets; return -ENOMEM; } me->capacity = new_capacity; for (int i = 0; i < old_capacity; i++) { struct node *traverse = old_buckets[i]; - while (traverse != NULL) { + while (traverse) { struct node *const backup = traverse->next; unordered_multimap_add_item(me, traverse); traverse = backup; @@ -220,17 +220,17 @@ unordered_multimap_create_element(unordered_multimap me, const void *const value) { struct node *const init = malloc(sizeof(struct node)); - if (init == NULL) { + if (!init) { return NULL; } init->key = malloc(me->key_size); - if (init->key == NULL) { + if (!init->key) { free(init); return NULL; } memcpy(init->key, key, me->key_size); init->value = malloc(me->value_size); - if (init->value == NULL) { + if (!init->value) { free(init->key); free(init); return NULL; @@ -257,20 +257,20 @@ int unordered_multimap_put(unordered_multimap me, { const unsigned long hash = me->hash(key); const int index = (int) (hash % me->capacity); - if (me->buckets[index] == NULL) { + if (!me->buckets[index]) { me->buckets[index] = unordered_multimap_create_element(me, hash, key, value); - if (me->buckets[index] == NULL) { + if (!me->buckets[index]) { return -ENOMEM; } } else { struct node *traverse = me->buckets[index]; - while (traverse->next != NULL) { + while (traverse->next) { traverse = traverse->next; } traverse->next = unordered_multimap_create_element(me, hash, key, value); - if (traverse->next == NULL) { + if (!traverse->next) { return -ENOMEM; } } @@ -296,7 +296,7 @@ void unordered_multimap_get_start(unordered_multimap me, void *const key) me->iterate_element = NULL; const int index = (int) (me->iterate_hash % me->capacity); struct node *traverse = me->buckets[index]; - while (traverse != NULL) { + while (traverse) { if (unordered_multimap_is_equal(me, traverse, me->iterate_hash, key)) { me->iterate_element = traverse; return; @@ -318,12 +318,12 @@ void unordered_multimap_get_start(unordered_multimap me, void *const key) */ bool unordered_multimap_get_next(void *const value, unordered_multimap me) { - if (me->iterate_element == NULL) { + if (!me->iterate_element) { return false; } struct node *const item = me->iterate_element; struct node *traverse = item->next; - while (traverse != NULL) { + while (traverse) { if (unordered_multimap_is_equal(me, traverse, me->iterate_hash, me->iterate_key)) { me->iterate_element = traverse; @@ -351,7 +351,7 @@ int unordered_multimap_count(unordered_multimap me, void *const key) const unsigned long hash = me->hash(key); const int index = (int) (hash % me->capacity); const struct node *traverse = me->buckets[index]; - while (traverse != NULL) { + while (traverse) { if (unordered_multimap_is_equal(me, traverse, hash, key)) { count++; } @@ -373,7 +373,7 @@ bool unordered_multimap_contains(unordered_multimap me, void *const key) const unsigned long hash = me->hash(key); const int index = (int) (hash % me->capacity); const struct node *traverse = me->buckets[index]; - while (traverse != NULL) { + while (traverse) { if (unordered_multimap_is_equal(me, traverse, hash, key)) { return true; } @@ -397,7 +397,7 @@ bool unordered_multimap_remove(unordered_multimap me, { const unsigned long hash = me->hash(key); const int index = (int) (hash % me->capacity); - if (me->buckets[index] == NULL) { + if (!me->buckets[index]) { return false; } struct node *traverse = me->buckets[index]; @@ -410,7 +410,7 @@ bool unordered_multimap_remove(unordered_multimap me, me->size--; return true; } - while (traverse->next != NULL) { + while (traverse->next) { is_key_equal = unordered_multimap_is_equal(me, traverse->next, hash, key); if (is_key_equal && me->value_comparator(traverse->value, value) == 0) { @@ -443,7 +443,7 @@ bool unordered_multimap_remove_all(unordered_multimap me, void *const key) bool was_modified = false; while (true) { struct node *traverse = me->buckets[index]; - if (traverse == NULL) { + if (!traverse) { break; } if (unordered_multimap_is_equal(me, traverse, hash, key)) { @@ -455,7 +455,7 @@ bool unordered_multimap_remove_all(unordered_multimap me, void *const key) was_modified = true; continue; } - while (traverse->next != NULL) { + while (traverse->next) { if (unordered_multimap_is_equal(me, traverse->next, hash, key)) { struct node *const backup = traverse->next; traverse->next = traverse->next->next; @@ -485,12 +485,12 @@ int unordered_multimap_clear(unordered_multimap me) { struct node **temp = calloc((size_t) STARTING_BUCKETS, sizeof(struct node *)); - if (temp == NULL) { + if (!temp) { return -ENOMEM; } for (int i = 0; i < me->capacity; i++) { struct node *traverse = me->buckets[i]; - while (traverse != NULL) { + while (traverse) { struct node *const backup = traverse; traverse = traverse->next; free(backup->key); diff --git a/src/unordered_multiset.c b/src/unordered_multiset.c index 948b2a3..b118c3e 100644 --- a/src/unordered_multiset.c +++ b/src/unordered_multiset.c @@ -64,7 +64,7 @@ unordered_multiset_init(const size_t key_size, { struct _unordered_multiset *const init = malloc(sizeof(struct _unordered_multiset)); - if (init == NULL) { + if (!init) { return NULL; } init->key_size = key_size; @@ -74,7 +74,7 @@ unordered_multiset_init(const size_t key_size, init->used = 0; init->capacity = STARTING_BUCKETS; init->buckets = calloc(STARTING_BUCKETS, sizeof(struct node *)); - if (init->buckets == NULL) { + if (!init->buckets) { free(init); return NULL; } @@ -89,12 +89,12 @@ static void unordered_multiset_add_item(unordered_multiset me, { const int index = (int) (add->hash % me->capacity); add->next = NULL; - if (me->buckets[index] == NULL) { + if (!me->buckets[index]) { me->buckets[index] = add; return; } struct node *traverse = me->buckets[index]; - while (traverse->next != NULL) { + while (traverse->next) { traverse = traverse->next; } traverse->next = add; @@ -113,13 +113,13 @@ int unordered_multiset_rehash(unordered_multiset me) { struct node **old_buckets = me->buckets; me->buckets = calloc((size_t) me->capacity, sizeof(struct node *)); - if (me->buckets == NULL) { + if (!me->buckets) { me->buckets = old_buckets; return -ENOMEM; } for (int i = 0; i < me->capacity; i++) { struct node *traverse = old_buckets[i]; - while (traverse != NULL) { + while (traverse) { struct node *const backup = traverse->next; traverse->hash = me->hash(traverse->key); unordered_multiset_add_item(me, traverse); @@ -163,14 +163,14 @@ static int unordered_multiset_resize(unordered_multiset me) const int new_capacity = (int) (me->capacity * RESIZE_RATIO); struct node **old_buckets = me->buckets; me->buckets = calloc((size_t) new_capacity, sizeof(struct node *)); - if (me->buckets == NULL) { + if (!me->buckets) { me->buckets = old_buckets; return -ENOMEM; } me->capacity = new_capacity; for (int i = 0; i < old_capacity; i++) { struct node *traverse = old_buckets[i]; - while (traverse != NULL) { + while (traverse) { struct node *const backup = traverse->next; unordered_multiset_add_item(me, traverse); traverse = backup; @@ -200,12 +200,12 @@ unordered_multiset_create_element(unordered_multiset me, const void *const key) { struct node *const init = malloc(sizeof(struct node)); - if (init == NULL) { + if (!init) { return NULL; } init->count = 1; init->key = malloc(me->key_size); - if (init->key == NULL) { + if (!init->key) { free(init); return NULL; } @@ -229,9 +229,9 @@ int unordered_multiset_put(unordered_multiset me, void *const key) const unsigned long hash = me->hash(key); const int index = (int) (hash % me->capacity); - if (me->buckets[index] == NULL) { + if (!me->buckets[index]) { me->buckets[index] = unordered_multiset_create_element(me, hash, key); - if (me->buckets[index] == NULL) { + if (!me->buckets[index]) { return -ENOMEM; } } else { @@ -241,7 +241,7 @@ int unordered_multiset_put(unordered_multiset me, void *const key) me->size++; return 0; } - while (traverse->next != NULL) { + while (traverse->next) { traverse = traverse->next; if (unordered_multiset_is_equal(me, traverse, hash, key)) { traverse->count++; @@ -250,7 +250,7 @@ int unordered_multiset_put(unordered_multiset me, void *const key) } } traverse->next = unordered_multiset_create_element(me, hash, key); - if (traverse->next == NULL) { + if (!traverse->next) { return -ENOMEM; } } @@ -275,7 +275,7 @@ int unordered_multiset_count(unordered_multiset me, void *const key) const unsigned long hash = me->hash(key); const int index = (int) (hash % me->capacity); const struct node *traverse = me->buckets[index]; - while (traverse != NULL) { + while (traverse) { if (unordered_multiset_is_equal(me, traverse, hash, key)) { return traverse->count; } @@ -309,7 +309,7 @@ bool unordered_multiset_remove(unordered_multiset me, void *const key) { const unsigned long hash = me->hash(key); const int index = (int) (hash % me->capacity); - if (me->buckets[index] == NULL) { + if (!me->buckets[index]) { return false; } struct node *traverse = me->buckets[index]; @@ -324,7 +324,7 @@ bool unordered_multiset_remove(unordered_multiset me, void *const key) me->size--; return true; } - while (traverse->next != NULL) { + while (traverse->next) { if (unordered_multiset_is_equal(me, traverse->next, hash, key)) { struct node *const backup = traverse->next; backup->count--; @@ -355,7 +355,7 @@ bool unordered_multiset_remove_all(unordered_multiset me, void *const key) { const unsigned long hash = me->hash(key); const int index = (int) (hash % me->capacity); - if (me->buckets[index] == NULL) { + if (!me->buckets[index]) { return false; } struct node *traverse = me->buckets[index]; @@ -367,7 +367,7 @@ bool unordered_multiset_remove_all(unordered_multiset me, void *const key) me->used--; return true; } - while (traverse->next != NULL) { + while (traverse->next) { if (unordered_multiset_is_equal(me, traverse->next, hash, key)) { struct node *const backup = traverse->next; traverse->next = traverse->next->next; @@ -394,12 +394,12 @@ int unordered_multiset_clear(unordered_multiset me) { struct node **temp = calloc((size_t) STARTING_BUCKETS, sizeof(struct node *)); - if (temp == NULL) { + if (!temp) { return -ENOMEM; } for (int i = 0; i < me->capacity; i++) { struct node *traverse = me->buckets[i]; - while (traverse != NULL) { + while (traverse) { struct node *const backup = traverse; traverse = traverse->next; free(backup->key); diff --git a/src/unordered_set.c b/src/unordered_set.c index fda5a51..78b8f25 100644 --- a/src/unordered_set.c +++ b/src/unordered_set.c @@ -61,7 +61,7 @@ unordered_set unordered_set_init(const size_t key_size, const void *const)) { struct _unordered_set *const init = malloc(sizeof(struct _unordered_set)); - if (init == NULL) { + if (!init) { return NULL; } init->key_size = key_size; @@ -70,7 +70,7 @@ unordered_set unordered_set_init(const size_t key_size, init->size = 0; init->capacity = STARTING_BUCKETS; init->buckets = calloc(STARTING_BUCKETS, sizeof(struct node *)); - if (init->buckets == NULL) { + if (!init->buckets) { free(init); return NULL; } @@ -84,12 +84,12 @@ static void unordered_set_add_item(unordered_set me, struct node *const add) { const int index = (int) (add->hash % me->capacity); add->next = NULL; - if (me->buckets[index] == NULL) { + if (!me->buckets[index]) { me->buckets[index] = add; return; } struct node *traverse = me->buckets[index]; - while (traverse->next != NULL) { + while (traverse->next) { traverse = traverse->next; } traverse->next = add; @@ -108,13 +108,13 @@ int unordered_set_rehash(unordered_set me) { struct node **old_buckets = me->buckets; me->buckets = calloc((size_t) me->capacity, sizeof(struct node *)); - if (me->buckets == NULL) { + if (!me->buckets) { me->buckets = old_buckets; return -ENOMEM; } for (int i = 0; i < me->capacity; i++) { struct node *traverse = old_buckets[i]; - while (traverse != NULL) { + while (traverse) { struct node *const backup = traverse->next; traverse->hash = me->hash(traverse->key); unordered_set_add_item(me, traverse); @@ -158,14 +158,14 @@ static int unordered_set_resize(unordered_set me) const int new_capacity = (int) (me->capacity * RESIZE_RATIO); struct node **old_buckets = me->buckets; me->buckets = calloc((size_t) new_capacity, sizeof(struct node *)); - if (me->buckets == NULL) { + if (!me->buckets) { me->buckets = old_buckets; return -ENOMEM; } me->capacity = new_capacity; for (int i = 0; i < old_capacity; i++) { struct node *traverse = old_buckets[i]; - while (traverse != NULL) { + while (traverse) { struct node *const backup = traverse->next; unordered_set_add_item(me, traverse); traverse = backup; @@ -194,11 +194,11 @@ static struct node *const unordered_set_create_element(unordered_set me, const void *const key) { struct node *const init = malloc(sizeof(struct node)); - if (init == NULL) { + if (!init) { return NULL; } init->key = malloc(me->key_size); - if (init->key == NULL) { + if (!init->key) { free(init); return NULL; } @@ -223,9 +223,9 @@ int unordered_set_put(unordered_set me, void *const key) const unsigned long hash = me->hash(key); const int index = (int) (hash % me->capacity); - if (me->buckets[index] == NULL) { + if (!me->buckets[index]) { me->buckets[index] = unordered_set_create_element(me, hash, key); - if (me->buckets[index] == NULL) { + if (!me->buckets[index]) { return -ENOMEM; } } else { @@ -233,14 +233,14 @@ int unordered_set_put(unordered_set me, void *const key) if (unordered_set_is_equal(me, traverse, hash, key)) { return 0; } - while (traverse->next != NULL) { + while (traverse->next) { traverse = traverse->next; if (unordered_set_is_equal(me, traverse, hash, key)) { return 0; } } traverse->next = unordered_set_create_element(me, hash, key); - if (traverse->next == NULL) { + if (!traverse->next) { return -ENOMEM; } } @@ -264,7 +264,7 @@ bool unordered_set_contains(unordered_set me, void *const key) const unsigned long hash = me->hash(key); const int index = (int) (hash % me->capacity); const struct node *traverse = me->buckets[index]; - while (traverse != NULL) { + while (traverse) { if (unordered_set_is_equal(me, traverse, hash, key)) { return true; } @@ -285,7 +285,7 @@ bool unordered_set_remove(unordered_set me, void *const key) { const unsigned long hash = me->hash(key); const int index = (int) (hash % me->capacity); - if (me->buckets[index] == NULL) { + if (!me->buckets[index]) { return false; } struct node *traverse = me->buckets[index]; @@ -296,7 +296,7 @@ bool unordered_set_remove(unordered_set me, void *const key) me->size--; return true; } - while (traverse->next != NULL) { + while (traverse->next) { if (unordered_set_is_equal(me, traverse->next, hash, key)) { struct node *const backup = traverse->next; traverse->next = traverse->next->next; @@ -322,12 +322,12 @@ int unordered_set_clear(unordered_set me) { struct node **temp = calloc((size_t) STARTING_BUCKETS, sizeof(struct node *)); - if (temp == NULL) { + if (!temp) { return -ENOMEM; } for (int i = 0; i < me->capacity; i++) { struct node *traverse = me->buckets[i]; - while (traverse != NULL) { + while (traverse) { struct node *const backup = traverse; traverse = traverse->next; free(backup->key); diff --git a/src/vector.c b/src/vector.c index 5ca2b86..6e18893 100644 --- a/src/vector.c +++ b/src/vector.c @@ -45,14 +45,14 @@ struct _vector { vector vector_init(const size_t data_size) { struct _vector *const init = malloc(sizeof(struct _vector)); - if (init == NULL) { + if (!init) { return NULL; } init->data_size = data_size; init->offset = 0; init->space = START_SPACE; init->storage = malloc(init->space * init->data_size); - if (init->storage == NULL) { + if (!init->storage) { free(init); return NULL; } @@ -89,7 +89,7 @@ bool vector_is_empty(vector me) static int vector_set_space(vector me, const int size) { void *const temp = realloc(me->storage, size * me->data_size); - if (temp == NULL) { + if (!temp) { return -ENOMEM; } me->storage = temp; @@ -190,7 +190,7 @@ int vector_add_at(vector me, const int index, void *const data) if (me->offset + 1 >= me->space) { const int new_space = (int) (me->space * RESIZE_RATIO); void *const temp = realloc(me->storage, new_space * me->data_size); - if (temp == NULL) { + if (!temp) { return -ENOMEM; } me->storage = temp;