fix: xor with not
This commit is contained in:
parent
660e269bde
commit
748055996a
|
@ -2,16 +2,12 @@
|
||||||
#include "sfmm.h"
|
#include "sfmm.h"
|
||||||
|
|
||||||
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_w = 8, sz_x = 200, sz_y = 300, sz_z = 4;
|
sf_errno = 0;
|
||||||
/* void *w = */ sf_malloc(sz_w);
|
size_t sz = sizeof(int);
|
||||||
void *x = sf_malloc(sz_x);
|
int *x = sf_malloc(sz);
|
||||||
void *y = sf_malloc(sz_y);
|
|
||||||
/* void *z = */ sf_malloc(sz_z);
|
*x = 4;
|
||||||
|
|
||||||
sf_free(y);
|
|
||||||
sf_free(x);
|
|
||||||
// sf_show_heap();
|
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,6 +89,7 @@ void *sf_malloc(sf_size_t size)
|
||||||
sf_block *block = split_block(ptr, min_size);
|
sf_block *block = split_block(ptr, min_size);
|
||||||
sf_size_t block_size = get_block_size(block->header);
|
sf_size_t block_size = get_block_size(block->header);
|
||||||
set_entire_header(block, size, block_size, 1, get_prv_alloc(block->header), 0);
|
set_entire_header(block, size, block_size, 1, get_prv_alloc(block->header), 0);
|
||||||
|
// sf_show_block(block);
|
||||||
return block->body.payload;
|
return block->body.payload;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -254,6 +255,7 @@ void set_entire_header(sf_block *block, sf_size_t paylod_size, sf_size_t block_s
|
||||||
set_block_size(block, block_size);
|
set_block_size(block, block_size);
|
||||||
set_prv_alloc(block, is_prv_alloc);
|
set_prv_alloc(block, is_prv_alloc);
|
||||||
set_in_qklst(block, is_in_qklst);
|
set_in_qklst(block, is_in_qklst);
|
||||||
|
// sf_show_block(block);
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_payload_size(sf_block *block, sf_size_t payload_size)
|
void set_payload_size(sf_block *block, sf_size_t payload_size)
|
||||||
|
@ -282,7 +284,7 @@ void set_alloc(sf_block *block, sf_size_t is_alloc)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
value &= ~alloc;
|
value &= (~((uint64_t)alloc));
|
||||||
}
|
}
|
||||||
set_header(block, value);
|
set_header(block, value);
|
||||||
// block->header ^= MAGIC;
|
// block->header ^= MAGIC;
|
||||||
|
@ -298,7 +300,7 @@ void set_prv_alloc(sf_block *block, sf_size_t is_prv_allc)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
value &= ~prv_alloc;
|
value &= (~((uint64_t)prv_alloc));
|
||||||
}
|
}
|
||||||
set_header(block, value);
|
set_header(block, value);
|
||||||
// block->header ^= MAGIC;
|
// block->header ^= MAGIC;
|
||||||
|
@ -314,7 +316,7 @@ void set_in_qklst(sf_block *block, sf_size_t is_in_qklst)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
value &= ~in_qklst;
|
value &= (~((uint64_t)in_qklst));
|
||||||
}
|
}
|
||||||
set_header(block, value);
|
set_header(block, value);
|
||||||
// block->header ^= MAGIC;
|
// block->header ^= MAGIC;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user