Macaulay2 Engine
Loading...
Searching...
No Matches

◆ chop_slab()

void stash::chop_slab ( )
private

Definition at line 48 of file mem.cpp.

49{
50 // grab a new slab, and chop it into element_size pieces, placing them
51 // onto the free list.
52
53 slab *new_slab = new slab;
54 new_slab->next = slabs;
55 slabs = new_slab;
56
57 // Time to chop it up.
58
59 char *prev = nullptr;
60 char *current = slabs->s;
61 for (int i = 0; i < n_per_slab; i++)
62 {
63 *(reinterpret_cast<char **>(current)) = prev;
64 prev = current;
65 current += element_size;
66 }
67 free_list = prev;
68}
slab * next
Definition mem.hpp:70
int n_per_slab
Definition mem.hpp:94
slab * slabs
Definition mem.hpp:99
void * free_list
Definition mem.hpp:106
size_t element_size
Definition mem.hpp:91

References element_size, free_list, n_per_slab, slab::next, and slabs.

Referenced by new_elem().