- 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);
} }
} }
@ -87,16 +88,19 @@ LinkedList_destroy(LinkedList self)
void void
LinkedList_destroyStatic(LinkedList self) LinkedList_destroyStatic(LinkedList self)
{ {
LinkedList nextElement = self; if (self)
LinkedList currentElement;
do
{ {
currentElement = nextElement; LinkedList nextElement = self;
nextElement = currentElement->next; LinkedList currentElement;
GLOBAL_FREEMEM(currentElement);
do
{
currentElement = nextElement;
nextElement = currentElement->next;
GLOBAL_FREEMEM(currentElement);
}
while (nextElement);
} }
while (nextElement != NULL);
} }
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,11 +123,14 @@ LinkedList_add(LinkedList self, void* data)
{ {
LinkedList newElement = LinkedList_create(); LinkedList newElement = LinkedList_create();
newElement->data = data; if (newElement)
{
newElement->data = data;
LinkedList listEnd = LinkedList_getLastElement(self); LinkedList listEnd = LinkedList_getLastElement(self);
listEnd->next = newElement; listEnd->next = newElement;
}
} }
bool bool
@ -131,7 +138,7 @@ 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