code: private long readPointer(int logicalPosition) {
  		if (logicalPosition < 0 || logicalPosition >= this.numRecords) {
  			throw new IndexOutOfBoundsException();
  		}
  		
  		final int bufferNum = logicalPosition / this.indexEntriesPerSegment;
  		final int segmentOffset = logicalPosition % this.indexEntriesPerSegment;
  		
  		return (this.sortIndex.get(bufferNum).getLong(segmentOffset * this.indexEntrySize)) & POINTER_MASK;
  	}
docs: ------------------------------------------------------------------------