code: func (p *IntBlockPool) NextBuffer() {
  	if 1+p.bufferUpto == len(p.Buffers) {
  		newBuffers := make([][]int, len(p.Buffers)+len(p.Buffers)/2)
  		copy(newBuffers, p.Buffers)
  		p.Buffers = newBuffers
  	}
  	p.Buffer = p.allocator.allocate()
  	p.Buffers[1+p.bufferUpto] = p.Buffer
  	p.bufferUpto++
  
  	p.IntUpto = 0
  	p.IntOffset += INT_BLOCK_SIZE
  }
docs: /*
  Advances the pool to its next buffer. This mthod should be called
  once after the constructor to initialize the pool. In contrast to the
  constructor a IntBlockPool.reset() call will advance the pool to its
  first buffer immediately.
  */