diff --git a/.cache/clangd/index/DynamicArray.c.4AD21698FC6EDB91.idx b/.cache/clangd/index/DynamicArray.c.4AD21698FC6EDB91.idx index 3172951..ab42c03 100644 Binary files a/.cache/clangd/index/DynamicArray.c.4AD21698FC6EDB91.idx and b/.cache/clangd/index/DynamicArray.c.4AD21698FC6EDB91.idx differ diff --git a/.cache/clangd/index/DynamicArray.h.83D0CABD35D124C4.idx b/.cache/clangd/index/DynamicArray.h.83D0CABD35D124C4.idx index 08f901a..c3dd364 100644 Binary files a/.cache/clangd/index/DynamicArray.h.83D0CABD35D124C4.idx and b/.cache/clangd/index/DynamicArray.h.83D0CABD35D124C4.idx differ diff --git a/.cache/clangd/index/LinkedList.c.D81166C9F6E527C3.idx b/.cache/clangd/index/LinkedList.c.D81166C9F6E527C3.idx index 1a34097..f586042 100644 Binary files a/.cache/clangd/index/LinkedList.c.D81166C9F6E527C3.idx and b/.cache/clangd/index/LinkedList.c.D81166C9F6E527C3.idx differ diff --git a/.cache/clangd/index/LinkedList.h.874993982F1D060C.idx b/.cache/clangd/index/LinkedList.h.874993982F1D060C.idx index 069dd2a..c28d3cb 100644 Binary files a/.cache/clangd/index/LinkedList.h.874993982F1D060C.idx and b/.cache/clangd/index/LinkedList.h.874993982F1D060C.idx differ diff --git a/.cache/clangd/index/Main.c.3B29896BB83AC389.idx b/.cache/clangd/index/Main.c.3B29896BB83AC389.idx index 089ca5b..427eb78 100644 Binary files a/.cache/clangd/index/Main.c.3B29896BB83AC389.idx and b/.cache/clangd/index/Main.c.3B29896BB83AC389.idx differ diff --git a/.cache/clangd/index/Queue.c.05F0749C9DEA8BEB.idx b/.cache/clangd/index/Queue.c.05F0749C9DEA8BEB.idx index 8f45796..98ae1e7 100644 Binary files a/.cache/clangd/index/Queue.c.05F0749C9DEA8BEB.idx and b/.cache/clangd/index/Queue.c.05F0749C9DEA8BEB.idx differ diff --git a/.cache/clangd/index/Queue.h.0FDB3A51CACEA373.idx b/.cache/clangd/index/Queue.h.0FDB3A51CACEA373.idx index de8de22..ca5a60d 100644 Binary files a/.cache/clangd/index/Queue.h.0FDB3A51CACEA373.idx and b/.cache/clangd/index/Queue.h.0FDB3A51CACEA373.idx differ diff --git a/.cache/clangd/index/Stack.c.C4C7FD383A3A2CFD.idx b/.cache/clangd/index/Stack.c.C4C7FD383A3A2CFD.idx index 1feac02..0b9fcab 100644 Binary files a/.cache/clangd/index/Stack.c.C4C7FD383A3A2CFD.idx and b/.cache/clangd/index/Stack.c.C4C7FD383A3A2CFD.idx differ diff --git a/.cache/clangd/index/Stack.h.FBE39392F0B9E960.idx b/.cache/clangd/index/Stack.h.FBE39392F0B9E960.idx index 74bbed4..4a6d8b9 100644 Binary files a/.cache/clangd/index/Stack.h.FBE39392F0B9E960.idx and b/.cache/clangd/index/Stack.h.FBE39392F0B9E960.idx differ diff --git a/Include/Fledasty/Core/LinkedList.h b/Include/Fledasty/Core/LinkedList.h index 9b70f0e..49d9710 100644 --- a/Include/Fledasty/Core/LinkedList.h +++ b/Include/Fledasty/Core/LinkedList.h @@ -48,6 +48,7 @@ FledastyError fledasty_linked_list_insert_at_index(FledastyLinkedList *current_l FledastyError fledasty_linked_list_insert_before_value(FledastyLinkedList *current_linked_list, void *before_value, void *value); FledastyError fledasty_linked_list_insert_after_value(FledastyLinkedList *current_linked_list, void *after_value, void *value); +bool fledasty_linked_list_has_value(FledastyLinkedList *current_linked_list, void *value); static inline bool fledasty_linked_list_is_empty(FledastyLinkedList *current_linked_list) { return current_linked_list->size == 0; } #endif diff --git a/Src/Core/LinkedList.c b/Src/Core/LinkedList.c index 0d7fc11..4940acc 100644 --- a/Src/Core/LinkedList.c +++ b/Src/Core/LinkedList.c @@ -194,7 +194,7 @@ FledastyError fledasty_linked_list_insert_after_value(FledastyLinkedList *curren if (current_node == current_linked_list->end) { new_node->next = NULL; - + current_linked_list->end->next = new_node; current_linked_list->end = new_node; } else { @@ -205,3 +205,20 @@ FledastyError fledasty_linked_list_insert_after_value(FledastyLinkedList *curren current_linked_list->size += 1; return FLEDASTY_ERROR_NONE; } + +bool fledasty_linked_list_has_value(FledastyLinkedList *current_linked_list, void *value) { + if (current_linked_list == NULL || value == NULL) { + return false; + } + + FledastyLinkedListNode *current_node = current_linked_list->start; + while (current_node != NULL) { + if (hallocy_compare_memory(current_node->value, value, current_linked_list->element_byte_size)) { + return true; + } + + current_node = current_node->next; + } + + return false; +} diff --git a/Tests/Main.c b/Tests/Main.c index 3115622..3b4dcff 100644 --- a/Tests/Main.c +++ b/Tests/Main.c @@ -124,6 +124,10 @@ int main() { test_linked_list_node = test_linked_list_node->next; } + if (fledasty_linked_list_has_value(&test_linked_list, &insert_value)) { + printf("Linked list contains %d\n", insert_value); + } + if (fledasty_linked_list_is_empty(&test_linked_list)) { printf("Linked list is empty\n"); }