]> git.llucax.com Git - software/dgc/cdgc.git/commit
Store a pointer to the pool in the free_list
authorLeandro Lucarella <llucax@gmail.com>
Sat, 28 Aug 2010 02:45:02 +0000 (23:45 -0300)
committerLeandro Lucarella <llucax@gmail.com>
Sat, 28 Aug 2010 22:23:08 +0000 (19:23 -0300)
commit62b4073393f1d66e88322376627c8bef7b27f81d
tree59db85252b24d69abdcd8930448f4276ec3ca3d3
parent0955e008a80ca01988e5f6d4fa8bb7646f4262f4
Store a pointer to the pool in the free_list

Since the smallest bin size is big enough to store 2 pointers, the free
list is constructed storing the pointer to the pool the bin belongs to,
so we don't have to find the pool when operating with the free bin.

To make this work, the pools have to be stored outside the DynArray (and
store there only pointers) because when inserting sorted, moved pool
addresses are changed, and the stored pool pointer in the free list break.
rt/gc/cdgc/dynarray.d
rt/gc/cdgc/gc.d