|
@@ -30,11 +30,9 @@ void split(allocator_t *allocator, heap_t *heap, void *ptr,
|
|
|
HEADER_SIZE);
|
|
|
|
|
|
/* Resize the previous, used block */
|
|
|
- set_size(ptr, get_requested_size(ptr));
|
|
|
- /* set_size() resets the availability of the block */
|
|
|
- mark_used(ptr);
|
|
|
+ set_size_and_used(ptr, get_requested_size(ptr));
|
|
|
|
|
|
- set_size(new_block, new_block_size);
|
|
|
+ set_size_and_free(new_block, new_block_size);
|
|
|
set_previous_size_availability(new_block, get_size_availability(ptr));
|
|
|
|
|
|
#ifdef WITH_FIXED_LISTS
|
|
@@ -61,7 +59,6 @@ void split(allocator_t *allocator, heap_t *heap, void *ptr,
|
|
|
#endif /* WITH_FIXED_LISTS */
|
|
|
|
|
|
set_owner(new_block, heap);
|
|
|
- mark_free(new_block);
|
|
|
|
|
|
if(allocator->border_ptr == ptr) {
|
|
|
allocator->border_ptr = new_block;
|