mirror of
https://github.com/monero-project/monero.git
synced 2025-07-22 09:40:39 -04:00
Merge pull request #1617
0644eed7
Remove boost/foreach.cpp includes (Miguel Herranz)36dd3e23
Replace BOOST_REVERSE_FOREACH with ranged for (Miguel Herranz)629e3101
Replace BOOST_FOREACH with C++11 ranged for (Miguel Herranz)
This commit is contained in:
commit
f9e60dcd55
20 changed files with 84 additions and 94 deletions
|
@ -31,6 +31,7 @@
|
|||
#include <algorithm>
|
||||
#include <cstdio>
|
||||
#include <boost/filesystem.hpp>
|
||||
#include <boost/range/adaptor/reversed.hpp>
|
||||
|
||||
#include "include_base_utils.h"
|
||||
#include "cryptonote_basic_impl.h"
|
||||
|
@ -933,7 +934,7 @@ difficulty_type Blockchain::get_next_difficulty_for_alternative_chain(const std:
|
|||
size_t count = 0;
|
||||
size_t max_i = timestamps.size()-1;
|
||||
// get difficulties and timestamps from most recent blocks in alt chain
|
||||
BOOST_REVERSE_FOREACH(auto it, alt_chain)
|
||||
for(auto it: boost::adaptors::reverse(alt_chain))
|
||||
{
|
||||
timestamps[max_i - count] = it->second.bl.timestamp;
|
||||
cumulative_difficulties[max_i - count] = it->second.cumulative_difficulty;
|
||||
|
|
|
@ -36,7 +36,6 @@
|
|||
#include <boost/multi_index/global_fun.hpp>
|
||||
#include <boost/multi_index/hashed_index.hpp>
|
||||
#include <boost/multi_index/member.hpp>
|
||||
#include <boost/foreach.hpp>
|
||||
#include <atomic>
|
||||
#include <unordered_map>
|
||||
#include <unordered_set>
|
||||
|
|
|
@ -35,7 +35,6 @@
|
|||
#include <boost/serialization/variant.hpp>
|
||||
#include <boost/serialization/set.hpp>
|
||||
#include <boost/serialization/map.hpp>
|
||||
#include <boost/foreach.hpp>
|
||||
#include <boost/serialization/is_bitwise_serializable.hpp>
|
||||
#include <boost/archive/binary_iarchive.hpp>
|
||||
#include <boost/archive/portable_binary_iarchive.hpp>
|
||||
|
|
|
@ -31,7 +31,6 @@
|
|||
#include "include_base_utils.h"
|
||||
using namespace epee;
|
||||
|
||||
#include <boost/foreach.hpp>
|
||||
#include <unordered_set>
|
||||
#include "cryptonote_core.h"
|
||||
#include "common/command_line.h"
|
||||
|
@ -668,7 +667,7 @@ namespace cryptonote
|
|||
bool core::are_key_images_spent(const std::vector<crypto::key_image>& key_im, std::vector<bool> &spent) const
|
||||
{
|
||||
spent.clear();
|
||||
BOOST_FOREACH(auto& ki, key_im)
|
||||
for(auto& ki: key_im)
|
||||
{
|
||||
spent.push_back(m_blockchain_storage.have_tx_keyimg_as_spent(ki));
|
||||
}
|
||||
|
@ -681,14 +680,14 @@ namespace cryptonote
|
|||
uint64_t emission_amount = 0;
|
||||
uint64_t total_fee_amount = 0;
|
||||
this->get_blocks(start_offset, count, blocks);
|
||||
BOOST_FOREACH(auto& b, blocks)
|
||||
for(auto& b: blocks)
|
||||
{
|
||||
std::list<transaction> txs;
|
||||
std::list<crypto::hash> missed_txs;
|
||||
uint64_t coinbase_amount = get_outs_money_amount(b.miner_tx);
|
||||
this->get_transactions(b.tx_hashes, txs, missed_txs);
|
||||
uint64_t tx_fee_amount = 0;
|
||||
BOOST_FOREACH(const auto& tx, txs)
|
||||
for(const auto& tx: txs)
|
||||
{
|
||||
tx_fee_amount += get_tx_fee(tx);
|
||||
}
|
||||
|
@ -703,7 +702,7 @@ namespace cryptonote
|
|||
bool core::check_tx_inputs_keyimages_diff(const transaction& tx) const
|
||||
{
|
||||
std::unordered_set<crypto::key_image> ki;
|
||||
BOOST_FOREACH(const auto& in, tx.vin)
|
||||
for(const auto& in: tx.vin)
|
||||
{
|
||||
CHECKED_GET_SPECIFIC_VARIANT(in, const txin_to_key, tokey_in, false);
|
||||
if(!ki.insert(tokey_in.k_image).second)
|
||||
|
@ -869,7 +868,7 @@ namespace cryptonote
|
|||
|
||||
block_to_blob(b, arg.b.block);
|
||||
//pack transactions
|
||||
BOOST_FOREACH(auto& tx, txs)
|
||||
for(auto& tx: txs)
|
||||
arg.b.txs.push_back(t_serializable_object_to_blob(tx));
|
||||
|
||||
m_pprotocol->relay_block(arg, exclude_context);
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
using namespace epee;
|
||||
|
||||
#include "cryptonote_format_utils.h"
|
||||
#include <boost/foreach.hpp>
|
||||
#include "cryptonote_config.h"
|
||||
#include "miner.h"
|
||||
#include "crypto/crypto.h"
|
||||
|
@ -274,12 +273,12 @@ namespace cryptonote
|
|||
}
|
||||
uint64_t amount_in = 0;
|
||||
uint64_t amount_out = 0;
|
||||
BOOST_FOREACH(auto& in, tx.vin)
|
||||
for(auto& in: tx.vin)
|
||||
{
|
||||
CHECK_AND_ASSERT_MES(in.type() == typeid(txin_to_key), 0, "unexpected type id in transaction");
|
||||
amount_in += boost::get<txin_to_key>(in).amount;
|
||||
}
|
||||
BOOST_FOREACH(auto& o, tx.vout)
|
||||
for(auto& o: tx.vout)
|
||||
amount_out += o.amount;
|
||||
|
||||
CHECK_AND_ASSERT_MES(amount_in >= amount_out, false, "transaction spend (" <<amount_in << ") more than it has (" << amount_out << ")");
|
||||
|
@ -540,7 +539,7 @@ namespace cryptonote
|
|||
uint64_t summary_inputs_money = 0;
|
||||
//fill inputs
|
||||
int idx = -1;
|
||||
BOOST_FOREACH(const tx_source_entry& src_entr, sources)
|
||||
for(const tx_source_entry& src_entr: sources)
|
||||
{
|
||||
++idx;
|
||||
if(src_entr.real_output >= src_entr.outputs.size())
|
||||
|
@ -574,7 +573,7 @@ namespace cryptonote
|
|||
input_to_key.k_image = img;
|
||||
|
||||
//fill outputs array and use relative offsets
|
||||
BOOST_FOREACH(const tx_source_entry::output_entry& out_entry, src_entr.outputs)
|
||||
for(const tx_source_entry::output_entry& out_entry: src_entr.outputs)
|
||||
input_to_key.key_offsets.push_back(out_entry.first);
|
||||
|
||||
input_to_key.key_offsets = absolute_output_offsets_to_relative(input_to_key.key_offsets);
|
||||
|
@ -588,7 +587,7 @@ namespace cryptonote
|
|||
uint64_t summary_outs_money = 0;
|
||||
//fill outputs
|
||||
size_t output_index = 0;
|
||||
BOOST_FOREACH(const tx_destination_entry& dst_entr, shuffled_dsts)
|
||||
for(const tx_destination_entry& dst_entr: shuffled_dsts)
|
||||
{
|
||||
CHECK_AND_ASSERT_MES(dst_entr.amount > 0 || tx.version > 1, false, "Destination with wrong amount: " << dst_entr.amount);
|
||||
crypto::key_derivation derivation;
|
||||
|
@ -639,13 +638,13 @@ namespace cryptonote
|
|||
|
||||
std::stringstream ss_ring_s;
|
||||
size_t i = 0;
|
||||
BOOST_FOREACH(const tx_source_entry& src_entr, sources)
|
||||
for(const tx_source_entry& src_entr: sources)
|
||||
{
|
||||
ss_ring_s << "pub_keys:" << ENDL;
|
||||
std::vector<const crypto::public_key*> keys_ptrs;
|
||||
std::vector<crypto::public_key> keys(src_entr.outputs.size());
|
||||
size_t ii = 0;
|
||||
BOOST_FOREACH(const tx_source_entry::output_entry& o, src_entr.outputs)
|
||||
for(const tx_source_entry::output_entry& o: src_entr.outputs)
|
||||
{
|
||||
keys[ii] = rct2pk(o.second.dest);
|
||||
keys_ptrs.push_back(&keys[ii]);
|
||||
|
@ -677,7 +676,7 @@ namespace cryptonote
|
|||
if (!use_simple_rct)
|
||||
{
|
||||
// non simple ringct requires all real inputs to be at the same index for all inputs
|
||||
BOOST_FOREACH(const tx_source_entry& src_entr, sources)
|
||||
for(const tx_source_entry& src_entr: sources)
|
||||
{
|
||||
if(src_entr.real_output != sources.begin()->real_output)
|
||||
{
|
||||
|
@ -784,7 +783,7 @@ namespace cryptonote
|
|||
bool get_inputs_money_amount(const transaction& tx, uint64_t& money)
|
||||
{
|
||||
money = 0;
|
||||
BOOST_FOREACH(const auto& in, tx.vin)
|
||||
for(const auto& in: tx.vin)
|
||||
{
|
||||
CHECKED_GET_SPECIFIC_VARIANT(in, const txin_to_key, tokey_in, false);
|
||||
money += tokey_in.amount;
|
||||
|
@ -801,7 +800,7 @@ namespace cryptonote
|
|||
//---------------------------------------------------------------
|
||||
bool check_inputs_types_supported(const transaction& tx)
|
||||
{
|
||||
BOOST_FOREACH(const auto& in, tx.vin)
|
||||
for(const auto& in: tx.vin)
|
||||
{
|
||||
CHECK_AND_ASSERT_MES(in.type() == typeid(txin_to_key), false, "wrong variant type: "
|
||||
<< in.type().name() << ", expected " << typeid(txin_to_key).name()
|
||||
|
@ -813,7 +812,7 @@ namespace cryptonote
|
|||
//-----------------------------------------------------------------------------------------------
|
||||
bool check_outs_valid(const transaction& tx)
|
||||
{
|
||||
BOOST_FOREACH(const tx_out& out, tx.vout)
|
||||
for(const tx_out& out: tx.vout)
|
||||
{
|
||||
CHECK_AND_ASSERT_MES(out.target.type() == typeid(txout_to_key), false, "wrong variant type: "
|
||||
<< out.target.type().name() << ", expected " << typeid(txout_to_key).name()
|
||||
|
@ -838,7 +837,7 @@ namespace cryptonote
|
|||
bool check_inputs_overflow(const transaction& tx)
|
||||
{
|
||||
uint64_t money = 0;
|
||||
BOOST_FOREACH(const auto& in, tx.vin)
|
||||
for(const auto& in: tx.vin)
|
||||
{
|
||||
CHECKED_GET_SPECIFIC_VARIANT(in, const txin_to_key, tokey_in, false);
|
||||
if(money > tokey_in.amount + money)
|
||||
|
@ -851,7 +850,7 @@ namespace cryptonote
|
|||
bool check_outs_overflow(const transaction& tx)
|
||||
{
|
||||
uint64_t money = 0;
|
||||
BOOST_FOREACH(const auto& o, tx.vout)
|
||||
for(const auto& o: tx.vout)
|
||||
{
|
||||
if(money > o.amount + money)
|
||||
return false;
|
||||
|
@ -863,7 +862,7 @@ namespace cryptonote
|
|||
uint64_t get_outs_money_amount(const transaction& tx)
|
||||
{
|
||||
uint64_t outputs_amount = 0;
|
||||
BOOST_FOREACH(const auto& o, tx.vout)
|
||||
for(const auto& o: tx.vout)
|
||||
outputs_amount += o.amount;
|
||||
return outputs_amount;
|
||||
}
|
||||
|
@ -905,7 +904,7 @@ namespace cryptonote
|
|||
{
|
||||
money_transfered = 0;
|
||||
size_t i = 0;
|
||||
BOOST_FOREACH(const tx_out& o, tx.vout)
|
||||
for(const tx_out& o: tx.vout)
|
||||
{
|
||||
CHECK_AND_ASSERT_MES(o.target.type() == typeid(txout_to_key), false, "wrong type id in transaction out" );
|
||||
if(is_out_to_acc(acc, boost::get<txout_to_key>(o.target), tx_pub_key, i))
|
||||
|
@ -1177,7 +1176,7 @@ namespace cryptonote
|
|||
size_t bl_sz = 0;
|
||||
get_transaction_hash(b.miner_tx, h, bl_sz);
|
||||
txs_ids.push_back(h);
|
||||
BOOST_FOREACH(auto& th, b.tx_hashes)
|
||||
for(auto& th: b.tx_hashes)
|
||||
txs_ids.push_back(th);
|
||||
return get_tx_tree_hash(txs_ids);
|
||||
}
|
||||
|
|
|
@ -33,7 +33,6 @@
|
|||
#include <boost/utility/value_init.hpp>
|
||||
#include <boost/interprocess/detail/atomic.hpp>
|
||||
#include <boost/limits.hpp>
|
||||
#include <boost/foreach.hpp>
|
||||
#include "misc_language.h"
|
||||
#include "include_base_utils.h"
|
||||
#include "cryptonote_basic_impl.h"
|
||||
|
@ -292,7 +291,7 @@ namespace cryptonote
|
|||
send_stop_signal();
|
||||
CRITICAL_REGION_LOCAL(m_threads_lock);
|
||||
|
||||
BOOST_FOREACH(boost::thread& th, m_threads)
|
||||
for(boost::thread& th: m_threads)
|
||||
th.join();
|
||||
|
||||
MINFO("Mining has been stopped, " << m_threads.size() << " finished" );
|
||||
|
|
|
@ -240,7 +240,7 @@ namespace cryptonote
|
|||
// assume failure during verification steps until success is certain
|
||||
tvc.m_verifivation_failed = true;
|
||||
|
||||
BOOST_FOREACH(const auto& in, tx.vin)
|
||||
for(const auto& in: tx.vin)
|
||||
{
|
||||
CHECKED_GET_SPECIFIC_VARIANT(in, const txin_to_key, txin, false);
|
||||
std::unordered_set<crypto::hash>& kei_image_set = m_spent_key_images[txin.k_image];
|
||||
|
@ -275,7 +275,7 @@ namespace cryptonote
|
|||
// ND: Speedup
|
||||
// 1. Move transaction hash calcuation outside of loop. ._.
|
||||
crypto::hash actual_hash = get_transaction_hash(tx);
|
||||
BOOST_FOREACH(const txin_v& vi, tx.vin)
|
||||
for(const txin_v& vi: tx.vin)
|
||||
{
|
||||
CHECKED_GET_SPECIFIC_VARIANT(vi, const txin_to_key, txin, false);
|
||||
auto it = m_spent_key_images.find(txin.k_image);
|
||||
|
@ -415,7 +415,7 @@ namespace cryptonote
|
|||
void tx_memory_pool::get_transactions(std::list<transaction>& txs) const
|
||||
{
|
||||
CRITICAL_REGION_LOCAL(m_transactions_lock);
|
||||
BOOST_FOREACH(const auto& tx_vt, m_transactions)
|
||||
for(const auto& tx_vt: m_transactions)
|
||||
txs.push_back(tx_vt.second.tx);
|
||||
}
|
||||
//------------------------------------------------------------------
|
||||
|
@ -488,7 +488,7 @@ namespace cryptonote
|
|||
bool tx_memory_pool::have_tx_keyimges_as_spent(const transaction& tx) const
|
||||
{
|
||||
CRITICAL_REGION_LOCAL(m_transactions_lock);
|
||||
BOOST_FOREACH(const auto& in, tx.vin)
|
||||
for(const auto& in: tx.vin)
|
||||
{
|
||||
CHECKED_GET_SPECIFIC_VARIANT(in, const txin_to_key, tokey_in, true);//should never fail
|
||||
if(have_tx_keyimg_as_spent(tokey_in.k_image))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue