private void grow(int desiredSize)
{
int desired = (int)desiredSize;
if (desired < 1) throw Err.make("desired " + desired + " < 1").val;
int newSize = Math.Max(desired, m_size*2);
if (newSize < 10) newSize = 10;
object[] temp = new object[newSize];
Array.Copy(m_values, temp, m_size);
m_values = temp;
}