|
@@ -44,8 +44,8 @@ void set_size_and_free(freelist_rb_t *raw_block, block_header_t *ptr, size_t siz
|
|
|
|
|
|
ptr->size = size << 1;
|
|
|
|
|
|
- if(raw_block->border_ptr != ptr) {
|
|
|
- next_block_header = (block_header_t *) ((char *) ptr + size);
|
|
|
+ next_block_header = get_dlnext(raw_block, ptr);
|
|
|
+ if(next_block_header != NULL) {
|
|
|
next_block_header->previous_size = size << 1;
|
|
|
}
|
|
|
}
|
|
@@ -56,8 +56,8 @@ void set_size_and_used(freelist_rb_t *raw_block, block_header_t *ptr, size_t siz
|
|
|
ptr->size = size << 1;
|
|
|
ptr->size |= 1;
|
|
|
|
|
|
- if(raw_block->border_ptr != ptr) {
|
|
|
- next_block_header = (block_header_t *) ((char *) ptr + size);
|
|
|
+ next_block_header = get_dlnext(raw_block, ptr);
|
|
|
+ if(next_block_header != NULL) {
|
|
|
next_block_header->previous_size = ptr->size;
|
|
|
}
|
|
|
}
|
|
@@ -67,8 +67,8 @@ void mark_used(freelist_rb_t *raw_block, block_header_t *ptr) {
|
|
|
|
|
|
ptr->size |= 1;
|
|
|
|
|
|
- if(raw_block->border_ptr != ptr) {
|
|
|
- next_block_header = (block_header_t *) ((char *) ptr + get_size(ptr));
|
|
|
+ next_block_header = get_dlnext(raw_block, ptr);
|
|
|
+ if(next_block_header != NULL) {
|
|
|
next_block_header->previous_size |= 1;
|
|
|
}
|
|
|
}
|
|
@@ -78,8 +78,8 @@ void mark_free(freelist_rb_t *raw_block, block_header_t *ptr) {
|
|
|
|
|
|
ptr->size &= (~ ((size_t) 0x1));
|
|
|
|
|
|
- if(raw_block->border_ptr != ptr) {
|
|
|
- next_block_header = (block_header_t *) ((char *) ptr + get_size(ptr));
|
|
|
+ next_block_header = get_dlnext(raw_block, ptr);
|
|
|
+ if(next_block_header != NULL) {
|
|
|
next_block_header->previous_size &= (~ ((size_t) 0x1));
|
|
|
}
|
|
|
}
|