private void Recycle(BufferBuilder.Buffer buf) { if (buf.recycledBuffer == null) { buf.recycledBuffer = new WeakReference((object)buf.buffer); } else { buf.recycledBuffer.Target = (object)buf.buffer; } buf.buffer = (char[])null; }
private void AddBuffer() { if (this.buffersCount + 1 == this.buffers.Length) { BufferBuilder.Buffer[] bufferArray = new BufferBuilder.Buffer[this.buffers.Length * 2]; Array.Copy((Array)this.buffers, 0, (Array)bufferArray, 0, this.buffers.Length); this.buffers = bufferArray; } char[] chArray; if (this.buffers[this.buffersCount].recycledBuffer != null) { chArray = (char[])this.buffers[this.buffersCount].recycledBuffer.Target; if (chArray != null) { this.buffers[this.buffersCount].recycledBuffer.Target = (object)null; goto label_6; } } chArray = new char[16384]; label_6: this.lastBuffer = chArray; this.buffers[this.buffersCount++].buffer = chArray; this.lastBufferIndex = 0; }