bool TryFragmentBins( int fromBinIndex, int binSize, ref GATManagedData chunk )
{
for( int i = fromBinIndex; i < _nbOfBins; i++ )
{
if( _freeChunksBins[ i ].Count != 0 )
{
chunk = _freeChunksBins[ i ].Pop ();
GATManagedData subChunk = GetOrMakeChunk();
subChunk.AllocateFree( chunk.MemOffset + binSize, chunk.next );
chunk.next = subChunk;
AddToFreeChunksBins( subChunk );
return true;
}
}
return false;
}