private void unshare(int needExtra){
  int sharedLen=_inputLen;
  _inputLen=0;
  char[] inputBuf=_inputBuffer;
  _inputBuffer=null;
  int start=_inputStart;
  _inputStart=-1;
  int needed=sharedLen + needExtra;
  if (_currentSegment == null || needed > _currentSegment.length) {
    _currentSegment=findBuffer(needed);
  }
  if (sharedLen > 0) {
    System.arraycopy(inputBuf,start,_currentSegment,0,sharedLen);
  }
  _segmentSize=0;
  _currentSize=sharedLen;
}

private void unshare ( int needExtra ) { int sharedLen = _inputLen ; _inputLen = 0 ; char [ ] inputBuf = _inputBuffer ; _inputBuffer = null ; int start = _inputStart ; _inputStart = - 1 ; int needed = sharedLen + needExtra ; if ( _currentSegment == null || needed > _currentSegment . length ) { _currentSegment = findBuffer ( needed ) ; } if ( sharedLen > 0 ) { System . arraycopy ( inputBuf , start , _currentSegment , 0 , sharedLen ) ; } _segmentSize = 0 ; _currentSize = sharedLen ; }
method called if / when we need to append content when we have been initialized to use shared buffer .
