Clean up
This commit is contained in:
@@ -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)
|
||||
|
||||
1
lib/sv.h
1
lib/sv.h
@@ -27,6 +27,7 @@ typedef struct SV
|
||||
#define SV(DATA, SIZE) ((const sv_t){.size = (SIZE), .data = (DATA)})
|
||||
#define SV_FMT(SV) (int)(SV).size, (SV).data
|
||||
#define PR_SV "%.*s"
|
||||
#define PR_DEBUG_SV "%d@%p"
|
||||
|
||||
sv_t sv_make(arena_t *allocator, const char *data, u64 size);
|
||||
sv_t sv_copy(arena_t *allocator, sv_t sv);
|
||||
|
||||
Reference in New Issue
Block a user