private void expand(int minNewSegmentSize){
  if (_segments == null) {
    _segments=new ArrayList<char[]>();
  }
  char[] curr=_currentSegment;
  _hasSegments=true;
  _segments.add(curr);
  _segmentSize+=curr.length;
  int oldLen=curr.length;
  int sizeAddition=oldLen >> 1;
  if (sizeAddition < minNewSegmentSize) {
    sizeAddition=minNewSegmentSize;
  }
  curr=_charArray(Math.min(MAX_SEGMENT_LEN,oldLen + sizeAddition));
  _currentSize=0;
  _currentSegment=curr;
}

private void expand ( int minNewSegmentSize ) { if ( _segments == null ) { _segments = new ArrayList < char [ ] > ( ) ; } char [ ] curr = _currentSegment ; _hasSegments = true ; _segments . add ( curr ) ; _segmentSize += curr . length ; int oldLen = curr . length ; int sizeAddition = oldLen > > 1 ; if ( sizeAddition < minNewSegmentSize ) { sizeAddition = minNewSegmentSize ; } curr = _charArray ( Math . min ( MAX_SEGMENT_LEN , oldLen + sizeAddition ) ) ; _currentSize = 0 ; _currentSegment = curr ; }
method called when current segment is full , to allocate new segment .
