How the Nasal GC works: Difference between revisions

Jump to navigation Jump to search
m
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;

Navigation menu