/**
* @see Allocator#alloc(int)
*/
synchronized public int alloc(int size) throws OutOfSpaceException {
for (Iterator<Range> i = freeRanges.iterator(); i.hasNext();) {
Range r = (Range) i.next();
if( r.size() >= size ) {
int rc = r.start;
op_trace("ALLOC", rc, size);
freeRanges.remove(rc, size);
return rc;
}