20,741
edits
m (→Memory blocks) |
m (→Memory blocks) |
||
| Line 34: | Line 34: | ||
struct Block* newb; | struct Block* newb; | ||
if(need < MIN_BLOCK_SIZE) need = MIN_BLOCK_SIZE; | if(need < MIN_BLOCK_SIZE) need = MIN_BLOCK_SIZE; | ||
// allocate a new Block | |||
newb = naAlloc(sizeof(struct Block)); | newb = naAlloc(sizeof(struct Block)); | ||
newb->block = naAlloc(need * p->elemsz); | // initialize the Block | ||
newb->size = need; | newb->block = naAlloc(need * p->elemsz); // number of elements * size of element | ||
newb->size = need; // set block size | |||
// memory blocks are circular linked lists: | |||
newb->next = p->blocks; | newb->next = p->blocks; | ||
p->blocks = newb; | p->blocks = newb; | ||