public FreespaceManager(LayerManager store, int init_freelist = 0)
{
this.store = store;
if (init_freelist != 0) {
} else {
RecordData data;
if (store.getRecord(new RecordKey().appendParsedKey(".ROOT/FREELIST/HEAD"), out data) == GetStatus.MISSING) {
throw new Exception("no freelist head!");
// TODO: fix this init hack
// next_allocation = (int)(RootBlockHeader.ROOTBLOCK_SIZE + LogWriter.DEFAULT_LOG_SIZE);
} else {
next_allocation = Lsd.lsdToNumber(data.data);
}
}
}