code: func (w *MultiLevelSkipListWriter) BufferSkip(df int) error {
  	assert(df%w.skipInterval == 0)
  	numLevels := 1
  	df /= w.skipInterval
  
  	// determine max level
  	for (df%w.skipMultiplier) == 0 && numLevels < w.numberOfSkipLevels {
  		numLevels++
  		df /= w.skipMultiplier
  	}
  
  	childPointer := int64(0)
  
  	var err error
  	for level := 0; level < numLevels; level++ {
  		if err = w.spi.WriteSkipData(level, w.skipBuffer[level]); err != nil {
  			return err
  		}
  
  		newChildPointer := w.skipBuffer[level].FilePointer()
  
  		if level != 0 {
  			// store child pointers for all levels except the lowest
  			if err = w.skipBuffer[level].WriteVLong(childPointer); err != nil {
  				return err
  			}
  		}
  
  		// remember the childPointer for the next level
  		childPointer = newChildPointer
  	}
  	return nil
  }
docs: /*
  Writes the current skip data to the buffers. The current document
  frequency determines the max level is skip ddata is to be written to.
  */