From dfcfb6cd6f19fd882d897eb860f46bb8841caa62 Mon Sep 17 00:00:00 2001 From: clemahieu Date: Sat, 14 Jan 2023 15:04:06 +0000 Subject: [PATCH] Using explicit conversion functions to eliminate C++20 comparison operator ambiguities. --- nano/core_test/block_store.cpp | 8 ++++---- nano/core_test/bootstrap_server.cpp | 6 +++--- nano/core_test/ledger.cpp | 4 ++-- nano/core_test/wallet.cpp | 2 +- nano/node/bootstrap/bootstrap_bulk_pull.cpp | 4 ++-- nano/node/json_handler.cpp | 2 +- nano/node/unchecked_map.cpp | 4 ++-- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/nano/core_test/block_store.cpp b/nano/core_test/block_store.cpp index 5aefa6523..2a389841b 100644 --- a/nano/core_test/block_store.cpp +++ b/nano/core_test/block_store.cpp @@ -934,7 +934,7 @@ TEST (block_store, roots) .sign (nano::keypair ().prv, 4) .work (5) .build (); - ASSERT_EQ (send_block->hashables.previous, send_block->root ()); + ASSERT_EQ (send_block->hashables.previous, send_block->root ().as_block_hash ()); auto change_block = builder .change () .previous (0) @@ -942,7 +942,7 @@ TEST (block_store, roots) .sign (nano::keypair ().prv, 3) .work (4) .build (); - ASSERT_EQ (change_block->hashables.previous, change_block->root ()); + ASSERT_EQ (change_block->hashables.previous, change_block->root ().as_block_hash ()); auto receive_block = builder .receive () .previous (0) @@ -950,7 +950,7 @@ TEST (block_store, roots) .sign (nano::keypair ().prv, 3) .work (4) .build (); - ASSERT_EQ (receive_block->hashables.previous, receive_block->root ()); + ASSERT_EQ (receive_block->hashables.previous, receive_block->root ().as_block_hash ()); auto open_block = builder .open () .source (0) @@ -959,7 +959,7 @@ TEST (block_store, roots) .sign (nano::keypair ().prv, 4) .work (5) .build (); - ASSERT_EQ (open_block->hashables.account, open_block->root ()); + ASSERT_EQ (open_block->hashables.account, open_block->root ().as_account ()); } TEST (block_store, pending_exists) diff --git a/nano/core_test/bootstrap_server.cpp b/nano/core_test/bootstrap_server.cpp index 3753c8f00..447eb5273 100644 --- a/nano/core_test/bootstrap_server.cpp +++ b/nano/core_test/bootstrap_server.cpp @@ -282,7 +282,7 @@ TEST (bootstrap_server, serve_hash_one) nano::asc_pull_ack::blocks_payload response_payload; ASSERT_NO_THROW (response_payload = std::get (response.payload)); ASSERT_EQ (response_payload.blocks.size (), 1); - ASSERT_TRUE (response_payload.blocks.front ()->hash () == request_payload.start); + ASSERT_TRUE (response_payload.blocks.front ()->hash () == request_payload.start.as_block_hash ()); } TEST (bootstrap_server, serve_end_of_chain) @@ -515,7 +515,7 @@ TEST (bootstrap_server, serve_account_info_missing) nano::asc_pull_ack::account_info_payload response_payload; ASSERT_NO_THROW (response_payload = std::get (response.payload)); - ASSERT_EQ (response_payload.account, request_payload.target); + ASSERT_EQ (response_payload.account, request_payload.target.as_account ()); ASSERT_EQ (response_payload.account_open, 0); ASSERT_EQ (response_payload.account_head, 0); ASSERT_EQ (response_payload.account_block_count, 0); @@ -524,4 +524,4 @@ TEST (bootstrap_server, serve_account_info_missing) // Ensure we don't get any unexpected responses ASSERT_ALWAYS (1s, responses.size () == 1); -} \ No newline at end of file +} diff --git a/nano/core_test/ledger.cpp b/nano/core_test/ledger.cpp index 2bad790ee..ebf123514 100644 --- a/nano/core_test/ledger.cpp +++ b/nano/core_test/ledger.cpp @@ -2012,7 +2012,7 @@ TEST (ledger, latest_root) auto transaction = store.tx_begin_write (); nano::work_pool pool{ nano::dev::network_params.network, std::numeric_limits::max () }; nano::keypair key; - ASSERT_EQ (key.pub, ledger.latest_root (transaction, key.pub)); + ASSERT_EQ (key.pub, ledger.latest_root (transaction, key.pub).as_account ()); auto hash1 = ledger.latest (transaction, nano::dev::genesis_key.pub); nano::block_builder builder; auto send = builder @@ -2024,7 +2024,7 @@ TEST (ledger, latest_root) .work (*pool.generate (hash1)) .build (); ASSERT_EQ (nano::process_result::progress, ledger.process (transaction, *send).code); - ASSERT_EQ (send->hash (), ledger.latest_root (transaction, nano::dev::genesis_key.pub)); + ASSERT_EQ (send->hash (), ledger.latest_root (transaction, nano::dev::genesis_key.pub).as_block_hash ()); } TEST (ledger, change_representative_move_representation) diff --git a/nano/core_test/wallet.cpp b/nano/core_test/wallet.cpp index 1c0384520..31de39eb7 100644 --- a/nano/core_test/wallet.cpp +++ b/nano/core_test/wallet.cpp @@ -696,7 +696,7 @@ TEST (wallet, work_cache_delayed) ASSERT_EQ (block1->hash (), node1.latest (nano::dev::genesis_key.pub)); auto block2 (wallet->send_action (nano::dev::genesis_key.pub, key.pub, 100)); ASSERT_EQ (block2->hash (), node1.latest (nano::dev::genesis_key.pub)); - ASSERT_EQ (block2->hash (), node1.wallets.delayed_work->operator[] (nano::dev::genesis_key.pub)); + ASSERT_EQ (block2->hash (), node1.wallets.delayed_work->operator[] (nano::dev::genesis_key.pub).as_block_hash ()); auto threshold (node1.default_difficulty (nano::work_version::work_1)); auto again (true); system.deadline_set (10s); diff --git a/nano/node/bootstrap/bootstrap_bulk_pull.cpp b/nano/node/bootstrap/bootstrap_bulk_pull.cpp index ccee51016..f1420593f 100644 --- a/nano/node/bootstrap/bootstrap_bulk_pull.cpp +++ b/nano/node/bootstrap/bootstrap_bulk_pull.cpp @@ -160,7 +160,7 @@ void nano::bulk_pull_client::received_block (boost::system::error_code ec, std:: // Is block expected? bool block_expected (false); // Unconfirmed head is used only for lazy destinations if legacy bootstrap is not available, see nano::bootstrap_attempt::lazy_destinations_increment (...) - bool unconfirmed_account_head (connection->node->flags.disable_legacy_bootstrap && pull_blocks == 0 && pull.retry_limit <= connection->node->network_params.bootstrap.lazy_retry_limit && expected == pull.account_or_head && block->account () == pull.account_or_head); + bool unconfirmed_account_head = connection->node->flags.disable_legacy_bootstrap && pull_blocks == 0 && pull.retry_limit <= connection->node->network_params.bootstrap.lazy_retry_limit && (expected == pull.account_or_head.as_block_hash ()) && (block->account () == pull.account_or_head.as_account ()); if (hash == expected || unconfirmed_account_head) { expected = block->previous (); @@ -369,7 +369,7 @@ void nano::bulk_pull_server::set_current_end () if (!request->end.is_zero ()) { auto account (connection->node->ledger.account (transaction, request->end)); - if (account != request->start) + if (account != request->start.as_account ()) { if (connection->node->config.logging.bulk_pull_logging ()) { diff --git a/nano/node/json_handler.cpp b/nano/node/json_handler.cpp index a1552cee4..51f5365dd 100644 --- a/nano/node/json_handler.cpp +++ b/nano/node/json_handler.cpp @@ -5011,7 +5011,7 @@ void nano::json_handler::work_generate () block = block_impl (true); if (block != nullptr) { - if (hash != block->root ()) + if (hash != block->root ().as_block_hash ()) { ec = nano::error_rpc::block_root_mismatch; } diff --git a/nano/node/unchecked_map.cpp b/nano/node/unchecked_map.cpp index 923863149..412db13c7 100644 --- a/nano/node/unchecked_map.cpp +++ b/nano/node/unchecked_map.cpp @@ -51,14 +51,14 @@ nano::transaction const & transaction, nano::hash_or_account const & dependency, nano::lock_guard lock{ entries_mutex }; if (entries == nullptr) { - for (auto [i, n] = store.unchecked.equal_range (transaction, dependency.as_block_hash ()); predicate () && i->first.key () == dependency && i != n; ++i) + for (auto [i, n] = store.unchecked.equal_range (transaction, dependency.as_block_hash ()); predicate () && i->first.key () == dependency.as_block_hash () && i != n; ++i) { action (i->first, i->second); } } else { - for (auto i = entries->template get ().lower_bound (nano::unchecked_key{ dependency, 0 }), n = entries->template get ().end (); predicate () && i != n && i->key.key () == dependency; ++i) + for (auto i = entries->template get ().lower_bound (nano::unchecked_key{ dependency, 0 }), n = entries->template get ().end (); predicate () && i != n && i->key.key () == dependency.as_block_hash (); ++i) { action (i->key, i->info); }