| 7448 | void popPath() { path.pop_back(); } |
| 7449 | |
| 7450 | Future<Void> pushPage(const BTreePage::BinaryTree::Cursor& link) { |
| 7451 | debug_printf("pushPage(link=%s)\n", link.get().toString(false).c_str()); |
| 7452 | return map(readPage(btree, |
| 7453 | reason, |
| 7454 | path.back().btPage()->height - 1, |
| 7455 | pager.getPtr(), |
| 7456 | link.get().getChildPage(), |
| 7457 | ioMaxPriority, |
| 7458 | false, |
| 7459 | true), |
| 7460 | [=](Reference<const ArenaPage> p) { |
| 7461 | #if REDWOOD_DEBUG |
| 7462 | path.push_back({ p, btree->getCursor(p.getPtr(), link), link.get().getChildPage() }); |
| 7463 | #else |
| 7464 | path.push_back({ p, btree->getCursor(p.getPtr(), link) }); |
| 7465 | #endif |
| 7466 | |
| 7467 | if (btree->m_pBoundaryVerifier != nullptr) { |
| 7468 | ASSERT(btree->m_pBoundaryVerifier->verify(link.get().getChildPage().front(), |
| 7469 | pager->getVersion(), |
| 7470 | link.get().key, |
| 7471 | link.next().getOrUpperBound().key)); |
| 7472 | } |
| 7473 | return Void(); |
| 7474 | }); |
| 7475 | } |
| 7476 | |
| 7477 | Future<Void> pushPage(BTreeNodeLinkRef id) { |
| 7478 | debug_printf("pushPage(root=%s)\n", ::toString(id).c_str()); |