- LinkedList: added NULL checks

v1.6
Michael Zillgith 4 weeks ago
parent 4481530afb
commit b7e087bf1f

@ -27,7 +27,8 @@
LinkedList LinkedList
LinkedList_getLastElement(LinkedList self) LinkedList_getLastElement(LinkedList self)
{ {
while (self->next != NULL) { while (self->next)
{
self = self->next; self = self->next;
} }
@ -66,12 +67,12 @@ LinkedList_destroyDeep(LinkedList self, LinkedListValueDeleteFunction valueDelet
currentElement = nextElement; currentElement = nextElement;
nextElement = currentElement->next; nextElement = currentElement->next;
if (currentElement->data != NULL) if (currentElement->data)
valueDeleteFunction(currentElement->data); valueDeleteFunction(currentElement->data);
GLOBAL_FREEMEM(currentElement); GLOBAL_FREEMEM(currentElement);
} }
while (nextElement != NULL); while (nextElement);
} }
} }
@ -86,6 +87,8 @@ LinkedList_destroy(LinkedList self)
*/ */
void void
LinkedList_destroyStatic(LinkedList self) LinkedList_destroyStatic(LinkedList self)
{
if (self)
{ {
LinkedList nextElement = self; LinkedList nextElement = self;
LinkedList currentElement; LinkedList currentElement;
@ -96,7 +99,8 @@ LinkedList_destroyStatic(LinkedList self)
nextElement = currentElement->next; nextElement = currentElement->next;
GLOBAL_FREEMEM(currentElement); GLOBAL_FREEMEM(currentElement);
} }
while (nextElement != NULL); while (nextElement);
}
} }
int int
@ -105,7 +109,7 @@ LinkedList_size(LinkedList self)
LinkedList nextElement = self; LinkedList nextElement = self;
int size = 0; int size = 0;
while (nextElement->next != NULL) while (nextElement->next)
{ {
nextElement = nextElement->next; nextElement = nextElement->next;
size++; size++;
@ -119,19 +123,22 @@ LinkedList_add(LinkedList self, void* data)
{ {
LinkedList newElement = LinkedList_create(); LinkedList newElement = LinkedList_create();
if (newElement)
{
newElement->data = data; newElement->data = data;
LinkedList listEnd = LinkedList_getLastElement(self); LinkedList listEnd = LinkedList_getLastElement(self);
listEnd->next = newElement; listEnd->next = newElement;
} }
}
bool bool
LinkedList_contains(LinkedList self, void* data) LinkedList_contains(LinkedList self, void* data)
{ {
LinkedList currentElement = self->next; LinkedList currentElement = self->next;
while (currentElement != NULL) while (currentElement)
{ {
if (currentElement->data == data) if (currentElement->data == data)
return true; return true;
@ -149,7 +156,7 @@ LinkedList_remove(LinkedList self, void* data)
LinkedList currentElement = self->next; LinkedList currentElement = self->next;
while (currentElement != NULL) while (currentElement)
{ {
if (currentElement->data == data) if (currentElement->data == data)
{ {

Loading…
Cancel
Save