// attempts to allocate using the supplied buffer manager, falls back to the default buffer manager on failure
static ManagedBuffer AllocateBuffer(int size, InternalBufferManager bufferManager)
{
if (bufferManager != null)
{
byte[] buffer = bufferManager.TakeBuffer(size);
if (buffer != null)
{
return(new ManagedBuffer(buffer, bufferManager));
}
}
return(new ManagedBuffer(BufferManager.TakeBuffer(size), BufferManager));
}