text: 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;}}