Warning: session_start(): open(/var/lib/php/sessions/sess_mvvpbqio36o533kh4ve9ht3iin, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
// all sizes+addresses are in ints (4 bytes)
sclass ManagedIntObjects_v1 {
int[] memory = new int[0];
new FreeList freeList;
void ensureCapacity(int size) {
if (memorySize() < size)
setMemorySize(roundUpToPowerOfTwo(size));
}
int memorySize() { ret memory.length; }
void setMemorySize(int newSize) {
int size = memorySize();
if (newSize < size) unimplemented("Shrinking memory");
freeList.add(IntRange(size, newSize));
memory = resizeIntArray(memory, newSize);
}
void growMemory() {
setMemorySize(memorySize()*2);
}
int alloc(int length) {
IntRange r;
while ((r = freeList.findFreeSpace(length)) == null)
growMemory();
freeList.remove(IntRange(r.start+length, r.end));
ret r.start;
}
void free(int start, int length) {
freeList.add(IntRange(start, start+length));
}
}