So if you want to grow a queue of size 10 by 6 elements, you allocate an array of size 2,147,483,639? I see that grow is only called with an increment of 1, but that seems to me like a bug waiting to happen.