aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_afit_alloc.c
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2012-11-06 22:42:47 +0100
committerSverker Eriksson <[email protected]>2012-11-15 14:20:14 +0100
commitde03018e74bea97795895f1611abf2a50a484449 (patch)
tree43d33e133e538a92e8d1f8495f71194022248233 /erts/emulator/beam/erl_afit_alloc.c
parent495cadb1cbc315fa5250f99894b20508bb8a4c50 (diff)
downloadotp-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.c10
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;