private void RemoveLeafNode(Transaction tx, Cursor cursor, Page page) { var node = page.GetNode(page.LastSearchPosition); if (node->Flags == (NodeFlags.PageRef)) // this is an overflow pointer { var overflowPage = tx.GetReadOnlyPage(node->PageNumber); var numberOfPages = GetNumberOfOverflowPages(tx, overflowPage.OverflowSize); for (int i = 0; i < numberOfPages; i++) { tx.FreePage(overflowPage.PageNumber + i); } var txInfo = tx.GetTreeInformation(this); txInfo.State.OverflowPages -= numberOfPages; txInfo.State.PageCount -= numberOfPages; } page.RemoveNode(page.LastSearchPosition); cursor.DecrementItemCount(); }