diff options
| -rw-r--r-- | lib/heap.c | 10 | ||||
| -rw-r--r-- | lib/heap.h | 3 | 
2 files changed, 8 insertions, 5 deletions
| @@ -31,17 +31,17 @@ void heap_create(heap_t *heap)    heap->pages           = 0;  } -void heap_free_page(heap_t *heap, page_t *page) +bool heap_free_page(heap_t *heap, page_t *page)  {    if (!page || !heap) -    return; +    return false;    if (page == heap->beg)    {      heap->beg = heap->beg->next;      page_delete(page);      --heap->pages; -    return; +    return true;    }    page_t *prev = NULL, *next = NULL, *cur = NULL; @@ -55,7 +55,7 @@ void heap_free_page(heap_t *heap, page_t *page)    if (!cur)      // Couldn't find the page -    return; +    return false;    // Page was found    prev->next = next;    if (!next) @@ -63,6 +63,8 @@ void heap_free_page(heap_t *heap, page_t *page)      heap->end = prev;    page_delete(page);    --heap->pages; + +  return true;  }  page_t *heap_allocate(heap_t *heap, size_t requested) @@ -15,6 +15,7 @@  #include "./base.h" +#include <stdbool.h>  #include <stdlib.h>  typedef struct Page @@ -34,7 +35,7 @@ typedef struct  } heap_t;  void heap_create(heap_t *); -void heap_free_page(heap_t *, page_t *); +bool heap_free_page(heap_t *, page_t *);  page_t *heap_allocate(heap_t *, size_t);  void heap_stop(heap_t *); | 
