| 527 | } |
| 528 | |
| 529 | void BlockManager::WriteBlockIndexDB() |
| 530 | { |
| 531 | AssertLockHeld(::cs_main); |
| 532 | std::vector<std::pair<int, const CBlockFileInfo*>> vFiles; |
| 533 | vFiles.reserve(m_dirty_fileinfo.size()); |
| 534 | for (std::set<int>::iterator it = m_dirty_fileinfo.begin(); it != m_dirty_fileinfo.end();) { |
| 535 | vFiles.emplace_back(*it, &m_blockfile_info[*it]); |
| 536 | m_dirty_fileinfo.erase(it++); |
| 537 | } |
| 538 | std::vector<const CBlockIndex*> vBlocks; |
| 539 | vBlocks.reserve(m_dirty_blockindex.size()); |
| 540 | for (std::set<CBlockIndex*>::iterator it = m_dirty_blockindex.begin(); it != m_dirty_blockindex.end();) { |
| 541 | vBlocks.push_back(*it); |
| 542 | m_dirty_blockindex.erase(it++); |
| 543 | } |
| 544 | int max_blockfile{this->MaxBlockfileNum()}; |
| 545 | m_block_tree_db->WriteBatchSync(vFiles, max_blockfile, vBlocks); |
| 546 | } |
| 547 | |
| 548 | bool BlockManager::LoadBlockIndexDB(const std::optional<uint256>& snapshot_blockhash) |
| 549 | { |
no test coverage detected