Beispiel #1
0
 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;
 }
Beispiel #2
0
        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;
        }