arena: allow freeing NULL
This is a convenience for test code.
Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
diff --git a/kern/src/arena.c b/kern/src/arena.c
index e4ac586..b51bd4e 100644
--- a/kern/src/arena.c
+++ b/kern/src/arena.c
@@ -1152,6 +1152,8 @@
void arena_free(struct arena *arena, void *addr, size_t size)
{
+ if (!addr)
+ return;
size = ROUNDUP(size, arena->quantum);
if (size <= arena->qcache_max)
return kmem_cache_free(size_to_qcache(arena, size), addr);
@@ -1160,6 +1162,8 @@
void arena_xfree(struct arena *arena, void *addr, size_t size)
{
+ if (!addr)
+ return;
size = ROUNDUP(size, arena->quantum);
free_from_arena(arena, addr, size);
}