NVelocity.Runtime.Parser.VelocityCharStream.ExpandBuff C# (CSharp) Метод

ExpandBuff() приватный Метод

private ExpandBuff ( bool wrapAround ) : void
wrapAround bool
Результат void
        private void ExpandBuff(bool wrapAround)
        {
            char[] newBuffer = new char[bufferSize + 2048];
            int[] newBufferLine = new int[bufferSize + 2048];
            int[] newBufferColumn = new int[bufferSize + 2048];

            try
            {
                if (wrapAround)
                {
                    Array.Copy(buffer, tokenBegin, newBuffer, 0, bufferSize - tokenBegin);
                    Array.Copy(buffer, 0, newBuffer, bufferSize - tokenBegin, bufferPosition);
                    buffer = newBuffer;

                    Array.Copy(bufferLine, tokenBegin, newBufferLine, 0, bufferSize - tokenBegin);
                    Array.Copy(bufferLine, 0, newBufferLine, bufferSize - tokenBegin, bufferPosition);
                    bufferLine = newBufferLine;

                    Array.Copy(bufferColumn, tokenBegin, newBufferColumn, 0, bufferSize - tokenBegin);
                    Array.Copy(bufferColumn, 0, newBufferColumn, bufferSize - tokenBegin, bufferPosition);
                    bufferColumn = newBufferColumn;

                    maxNextCharInd = (bufferPosition += (bufferSize - tokenBegin));
                }
                else
                {
                    Array.Copy(buffer, tokenBegin, newBuffer, 0, bufferSize - tokenBegin);
                    buffer = newBuffer;

                    Array.Copy(bufferLine, tokenBegin, newBufferLine, 0, bufferSize - tokenBegin);
                    bufferLine = newBufferLine;

                    Array.Copy(bufferColumn, tokenBegin, newBufferColumn, 0, bufferSize - tokenBegin);
                    bufferColumn = newBufferColumn;

                    maxNextCharInd = (bufferPosition -= tokenBegin);
                }
            }
            catch(Exception t)
            {
                throw new ApplicationException(t.Message);
            }

            bufferSize += 2048;
            available = bufferSize;
            tokenBegin = 0;
        }