public void release(int marker) {int expectedMark = -numMarkers;if ( marker!=expectedMark ) {throw new IllegalStateException("release() called with an invalid marker.");}numMarkers--;if ( numMarkers==0 && p > 0 ) { System.arraycopy(data, p, data, 0, n - p); n = n - p;p = 0;lastCharBufferStart = lastChar;}}

public virtual void Release(int marker){int expectedMark = -numMarkers;if (marker != expectedMark){throw new InvalidOperationException("release() called with an invalid marker.");}numMarkers--;if (numMarkers == 0 && p > 0){System.Array.Copy(data, p, data, 0, n - p);n = n - p;p = 0;lastCharBufferStart = lastChar;}}
