diff options
author | Sverker Eriksson <[email protected]> | 2012-11-06 22:42:47 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2012-11-15 14:20:14 +0100 |
commit | de03018e74bea97795895f1611abf2a50a484449 (patch) | |
tree | 43d33e133e538a92e8d1f8495f71194022248233 /erts/emulator/beam/erl_afit_alloc.c | |
parent | 495cadb1cbc315fa5250f99894b20508bb8a4c50 (diff) | |
download | otp-de03018e74bea97795895f1611abf2a50a484449.tar.gz otp-de03018e74bea97795895f1611abf2a50a484449.tar.bz2 otp-de03018e74bea97795895f1611abf2a50a484449.zip |
erts: Add carrier offset to internal allocation headers
Diffstat (limited to 'erts/emulator/beam/erl_afit_alloc.c')
-rw-r--r-- | erts/emulator/beam/erl_afit_alloc.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/erts/emulator/beam/erl_afit_alloc.c b/erts/emulator/beam/erl_afit_alloc.c index 570cc59be2..ad7a5822df 100644 --- a/erts/emulator/beam/erl_afit_alloc.c +++ b/erts/emulator/beam/erl_afit_alloc.c @@ -37,6 +37,12 @@ #define GET_ERL_AF_ALLOC_IMPL #include "erl_afit_alloc.h" +struct AFFreeBlock_t_ { + Block_t block_head; + AFFreeBlock_t *prev; + AFFreeBlock_t *next; +}; +#define AF_BLK_SZ(B) MBC_BLK_SZ(&(B)->block_head) #define MIN_MBC_SZ (16*1024) #define MIN_MBC_FIRST_FREE_SZ (4*1024) @@ -118,7 +124,7 @@ get_free_block(Allctr_t *allctr, Uint size, Block_t *cand_blk, Uint cand_size, ASSERT(!cand_blk || cand_size >= size); - if (afallctr->free_list && BLK_SZ(afallctr->free_list) >= size) { + if (afallctr->free_list && AF_BLK_SZ(afallctr->free_list) >= size) { AFFreeBlock_t *res = afallctr->free_list; afallctr->free_list = res->next; if (res->next) @@ -135,7 +141,7 @@ link_free_block(Allctr_t *allctr, Block_t *block, Uint32 flags) AFFreeBlock_t *blk = (AFFreeBlock_t *) block; AFAllctr_t *afallctr = (AFAllctr_t *) allctr; - if (afallctr->free_list && BLK_SZ(afallctr->free_list) > BLK_SZ(blk)) { + if (afallctr->free_list && AF_BLK_SZ(afallctr->free_list) > AF_BLK_SZ(blk)) { blk->next = afallctr->free_list->next; blk->prev = afallctr->free_list; afallctr->free_list->next = blk; |