Draft: lab 4 demo fix
This commit is contained in:
@@ -80,6 +80,7 @@ void *mman_alloc(size_t unit)
|
||||
if (!pool->page_begin->left)
|
||||
pool->page_begin = *(void **)pool->page_begin->page_next;
|
||||
|
||||
LOG("mman_alloc"); LOG((uint64_t)unit); DEBUG_MEM(ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -103,6 +104,9 @@ void mman_free(void *ptr)
|
||||
|
||||
++pool->left;
|
||||
++PAGE_HEADER(ptr)->left;
|
||||
|
||||
LOG("mman_free"); LOG((uint64_t)unit); DEBUG_MEM(ptr);
|
||||
|
||||
size_t cap = (PAGE_SIZE - sizeof(kmalloc_allocator_t)) / unit;
|
||||
if (PAGE_HEADER(ptr)->left == cap && pool->left >= 2 * cap) {
|
||||
if (PAGE_HEADER(ptr)->page_prev)
|
||||
|
||||
Reference in New Issue
Block a user