fix: change payload size when realloc
This commit is contained in:
parent
c227704733
commit
507276d82f
|
@ -4,13 +4,10 @@
|
||||||
int main(int argc, char const *argv[]) {
|
int main(int argc, char const *argv[]) {
|
||||||
sf_set_magic(0x0);
|
sf_set_magic(0x0);
|
||||||
|
|
||||||
size_t sz_x = sizeof(double) * 8, sz_y = sizeof(int);
|
size_t sz_x = sizeof(int) * 20, sz_y = sizeof(int) * 16;
|
||||||
void *x = sf_malloc(sz_x);
|
void *x = sf_malloc(sz_x);
|
||||||
sf_realloc(x, sz_y);
|
sf_realloc(x, sz_y);
|
||||||
|
|
||||||
// cr_assert_not_null(x, "x is NULL!");
|
|
||||||
// sf_block *bp = (sf_block *)((char *)x - 16);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
sf_show_heap();
|
sf_show_heap();
|
||||||
|
|
|
@ -180,7 +180,10 @@ void *sf_realloc(void *pp, sf_size_t rsize)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (size - new_size < min)
|
if (size - new_size < min)
|
||||||
|
{
|
||||||
|
set_entire_header(block, rsize, size, 1, get_prv_alloc(block->header), 0);
|
||||||
return block->body.payload;
|
return block->body.payload;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sf_block *ptr = split_block(block, new_size);
|
sf_block *ptr = split_block(block, new_size);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user