diff options
Diffstat (limited to 'lib/arena.c')
-rw-r--r-- | lib/arena.c | 6 |
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) |