code: func (pool *ByteBlockPool) NextBuffer() {
  	if 1+pool.bufferUpto == len(pool.Buffers) {
  		newBuffers := make([][]byte, Oversize(len(pool.Buffers)+1, NUM_BYTES_OBJECT_REF))
  		copy(newBuffers, pool.Buffers)
  		pool.Buffers = newBuffers
  	}
  	pool.Buffer = pool.allocator.allocate()
  	pool.Buffers[1+pool.bufferUpto] = pool.Buffer
  	pool.bufferUpto++
  
  	pool.ByteUpto = 0
  	pool.ByteOffset += BYTE_BLOCK_SIZE
  }
docs: /*
  Advances the pool to its next buffer. This method should be called
  once after the constructor to initialize the pool. In contrast to the
  constructor, a ByteBlockPool.Reset() call will advance the pool to
  its first buffer immediately.
  */