public void Subdivide(TKey register, TKey lower, TKey upper) { SmartPointer ptr = map.Lookup(register); uint lowLen = ptr.Length / 2; uint upLen = ptr.Length - lowLen; Map(lower, ptr.Address, lowLen); Map(upper, ptr.Address + lowLen, upLen); }