diff --git a/lib/heap.c b/lib/heap.c index a54e24a..e69ef1d 100644 --- a/lib/heap.c +++ b/lib/heap.c @@ -36,7 +36,19 @@ void heap_create(heap_t *heap) heap->pages = 0; } -bool heap_free_page(heap_t *heap, page_t *page) +page_t *heap_allocate(heap_t *heap, size_t requested) +{ + page_t *cur = page_create(requested, NULL); + if (heap->end) + heap->end->next = cur; + else + heap->beg = cur; + heap->end = cur; + heap->pages++; + return cur; +} + +bool heap_free(heap_t *heap, page_t *page) { if (!page || !heap) return false; @@ -76,18 +88,6 @@ bool heap_free_page(heap_t *heap, page_t *page) return true; } -page_t *heap_allocate(heap_t *heap, size_t requested) -{ - page_t *cur = page_create(requested, NULL); - if (heap->end) - heap->end->next = cur; - else - heap->beg = cur; - heap->end = cur; - heap->pages++; - return cur; -} - void heap_stop(heap_t *heap) { page_t *ptr = heap->beg; diff --git a/lib/heap.h b/lib/heap.h index c8db635..0f25a5a 100644 --- a/lib/heap.h +++ b/lib/heap.h @@ -37,8 +37,8 @@ typedef struct } heap_t; void heap_create(heap_t *); -bool heap_free_page(heap_t *, page_t *); page_t *heap_allocate(heap_t *, size_t); +bool heap_free(heap_t *, page_t *); void heap_stop(heap_t *); #endif diff --git a/vm/runtime.c b/vm/runtime.c index 3ad369c..aea8013 100644 --- a/vm/runtime.c +++ b/vm/runtime.c @@ -675,7 +675,7 @@ err_t vm_mdelete(vm_t *vm) if (err) return err; page_t *page = (page_t *)ptr.as_word; - bool done = heap_free_page(&vm->heap, page); + bool done = heap_free(&vm->heap, page); if (!done) return ERR_INVALID_PAGE_ADDRESS; return ERR_OK;