+ if (!mblock_freelist)
+ {
+ mblock_freelist = xmalloc(sizeof(is_mblock) * MALLOC_CHUNK);
+ for (i = 0; i < MALLOC_CHUNK - 1; i++)
+ mblock_freelist[i].next = &mblock_freelist[i+1];
+ mblock_freelist[i].next = 0;
+ }
+ tmp = mblock_freelist;
+ mblock_freelist = mblock_freelist->next;