private FixedAllocator establishFreeFixedAllocator(final int block){
  final ArrayList<FixedAllocator> list=m_freeFixed[block];
  for (int i=0; i < list.size(); i++) {
    FixedAllocator f=list.get(i);
    if (!isOnCommitList(f)) {
      list.remove(i);
      return f;
    }
  }
  final int allocSize=64 * m_allocSizes[block];
  final FixedAllocator allocator=new FixedAllocator(this,allocSize);
  allocator.setIndex(m_allocs.size());
  m_allocs.add(allocator);
  if (m_storageStats != null) {
    m_storageStats.register(allocator,true);
  }
  return allocator;
}

private FixedAllocator establishFreeFixedAllocator ( final int block ) { final ArrayList < FixedAllocator > list = m_freeFixed [ block ] ; for ( int i = 0 ; i < list . size ( ) ; i ++ ) { FixedAllocator f = list . get ( i ) ; if ( ! isOnCommitList ( f ) ) { list . remove ( i ) ; return f ; } } final int allocSize = 64 * m_allocSizes [ block ] ; final FixedAllocator allocator = new FixedAllocator ( this , allocSize ) ; allocator . setIndex ( m_allocs . size ( ) ) ; m_allocs . add ( allocator ) ; if ( m_storageStats != null ) { m_storageStats . register ( allocator , true ) ; } return allocator ; }
called from contextallocation when no free fixedallocator is immediately available . first the free list will be checked to see if one is available , otherwise it will be created . when the calling contextallocation is released , its allocators will be added to the global free lists .
