System.Xml.BufferBuilder.BufferBuilder.AddBuffer C# (CSharp) Méthode

AddBuffer() private méthode

private AddBuffer ( ) : void
Résultat void
        private void AddBuffer() {
            Debug.Assert( buffers != null );

            // check the buffers array it its big enough
            if ( buffersCount + 1 == buffers.Length ) {
                Buffer[] newBuffers = new Buffer[buffers.Length * 2];
                Array.Copy( buffers, 0, newBuffers, 0, buffers.Length );
                buffers = newBuffers;
            }

            // use the recycled buffer if we have one
            char[] newBuffer;
            if ( buffers[buffersCount].recycledBuffer != null ) {
                newBuffer = (char[])buffers[buffersCount].recycledBuffer.Target;
                if ( newBuffer != null ) {
                    buffers[buffersCount].recycledBuffer.Target = null;
                    goto End;
                }
            }
            newBuffer = new char[BufferSize];

        End:
            // add the buffer to the list
            lastBuffer = newBuffer;
            buffers[buffersCount++].buffer = newBuffer;
            lastBufferIndex = 0;
        }