internal void EnsureCapacity()
{
if (m_iLineNumberCount == 0)
{
// First time. Allocate the arrays.
m_iOffsets = new int[InitialSize];
m_iLines = new int[InitialSize];
m_iColumns = new int[InitialSize];
m_iEndLines = new int[InitialSize];
m_iEndColumns = new int[InitialSize];
}
else if (m_iLineNumberCount == m_iOffsets.Length)
{
// the arrays are full. Enlarge the arrays
int[] temp = new int [m_iLineNumberCount * 2];
Array.Copy(m_iOffsets, temp, m_iLineNumberCount);
m_iOffsets = temp;
temp = new int [m_iLineNumberCount * 2];
Array.Copy(m_iLines, temp, m_iLineNumberCount);
m_iLines = temp;
temp = new int [m_iLineNumberCount * 2];
Array.Copy(m_iColumns, temp, m_iLineNumberCount);
m_iColumns = temp;
temp = new int [m_iLineNumberCount * 2];
Array.Copy(m_iEndLines, temp, m_iLineNumberCount);
m_iEndLines = temp;
temp = new int [m_iLineNumberCount * 2];
Array.Copy(m_iEndColumns, temp, m_iLineNumberCount);
m_iEndColumns = temp;
}
}