private Node PopTail(int level, Node node)
{
node = EnsureEditable(node);
int subidx = ((_cnt - 2) >> level) & 0x01f;
if (level > 5)
{
Node newchild = PopTail(level - 5, (Node)node.Array[subidx]);
if (newchild == null && subidx == 0)
return null;
else
{
Node ret = node;
ret.Array[subidx] = newchild;
return ret;
}
}
else if (subidx == 0)
return null;
else
{
Node ret = node;
ret.Array[subidx] = null;
return ret;
}
}