Fix bug in GC where every 2nd alloc would leak
diff --git a/src/lisp/gc.c b/src/lisp/gc.c
index b9e9574..2bdac4c 100644
--- a/src/lisp/gc.c
+++ b/src/lisp/gc.c
@@ -54,11 +54,12 @@
 
 void _sweep()
 {
-	for (struct alloc *a = first_a; a; a = a->next)
+	for (struct alloc *a = first_a; a;)
 	{
 		if (pool_alive(a->pool) || a->mark == gc_mark)
 		{
 			// Marked or in living pool
+			a = a->next;
 		}
 		else
 		{