aboutsummaryrefslogtreecommitdiff
path: root/lib/arena.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/arena.c')
-rw-r--r--lib/arena.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/lib/arena.c b/lib/arena.c
index aa2d775..f3f254d 100644
--- a/lib/arena.c
+++ b/lib/arena.c
@@ -114,7 +114,7 @@ void *arena_realloc(arena_t *arena, void *ptr, u64 oldsize, u64 newsize)
// No need to change anything.
return ptr;
- bool copy_into_new = true;
+ bool copy_into_new = false;
void *start = NULL;
page_t *old_page = NULL, *best_fit = NULL;
@@ -134,12 +134,9 @@ void *arena_realloc(arena_t *arena, void *ptr, u64 oldsize, u64 newsize)
{
start = ptr;
old_page->size += newsize - oldsize;
- copy_into_new = false;
}
else
{
- if (!old_page)
- copy_into_new = false;
if (!best_fit)
{
best_fit = page_create(newsize);
@@ -149,6 +146,7 @@ void *arena_realloc(arena_t *arena, void *ptr, u64 oldsize, u64 newsize)
start = best_fit->data + best_fit->size;
best_fit->size += newsize;
+ copy_into_new = true;
}
if (copy_into_new)