private void AddToRecentlyFoundPages(Transaction tx, Cursor c, Page p, bool? leftmostPage, bool? rightmostPage) { var foundPage = new RecentlyFoundPages.FoundPage(c.Pages.Count) { Number = p.PageNumber, FirstKey = leftmostPage == true ? Slice.BeforeAllKeys : p.GetNodeKey(0), LastKey = rightmostPage == true ? Slice.AfterAllKeys : p.GetNodeKey(p.NumberOfEntries - 1), }; var cur = c.Pages.First; int pos = foundPage.CursorPath.Length - 1; while (cur != null) { foundPage.CursorPath[pos--] = cur.Value.PageNumber; cur = cur.Next; } tx.AddRecentlyFoundPage(this, foundPage); }