aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_core
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2017-02-02 18:16:38 +0200
committerRiccardo Spagni <ric@spagni.net>2017-02-02 18:16:39 +0200
commitf9e60dcd551b9f5b4a86a730d0abfc97a6767519 (patch)
treee1613849aa7a66b11876a03b081c4cc4f6450ca8 /src/cryptonote_core
parentMerge pull request #1614 (diff)
parentRemove boost/foreach.cpp includes (diff)
downloadmonero-f9e60dcd551b9f5b4a86a730d0abfc97a6767519.tar.xz
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)
Diffstat (limited to 'src/cryptonote_core')
-rw-r--r--src/cryptonote_core/blockchain.cpp3
-rw-r--r--src/cryptonote_core/blockchain.h1
-rw-r--r--src/cryptonote_core/cryptonote_boost_serialization.h1
-rw-r--r--src/cryptonote_core/cryptonote_core.cpp11
-rw-r--r--src/cryptonote_core/cryptonote_format_utils.cpp33
-rw-r--r--src/cryptonote_core/miner.cpp3
-rw-r--r--src/cryptonote_core/tx_pool.cpp8
7 files changed, 28 insertions, 32 deletions
diff --git a/src/cryptonote_core/blockchain.cpp b/src/cryptonote_core/blockchain.cpp
index 789687ce0..b344c5597 100644
--- a/src/cryptonote_core/blockchain.cpp
+++ b/src/cryptonote_core/blockchain.cpp
@@ -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;
diff --git a/src/cryptonote_core/blockchain.h b/src/cryptonote_core/blockchain.h
index ca665e1d4..cd452faf4 100644
--- a/src/cryptonote_core/blockchain.h
+++ b/src/cryptonote_core/blockchain.h
@@ -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>
diff --git a/src/cryptonote_core/cryptonote_boost_serialization.h b/src/cryptonote_core/cryptonote_boost_serialization.h
index 7423b222a..409b9798c 100644
--- a/src/cryptonote_core/cryptonote_boost_serialization.h
+++ b/src/cryptonote_core/cryptonote_boost_serialization.h
@@ -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>
diff --git a/src/cryptonote_core/cryptonote_core.cpp b/src/cryptonote_core/cryptonote_core.cpp
index 22d473b35..ef473cfba 100644
--- a/src/cryptonote_core/cryptonote_core.cpp
+++ b/src/cryptonote_core/cryptonote_core.cpp
@@ -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);
diff --git a/src/cryptonote_core/cryptonote_format_utils.cpp b/src/cryptonote_core/cryptonote_format_utils.cpp
index e04409d87..70ba7ee18 100644
--- a/src/cryptonote_core/cryptonote_format_utils.cpp
+++ b/src/cryptonote_core/cryptonote_format_utils.cpp
@@ -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);
}
diff --git a/src/cryptonote_core/miner.cpp b/src/cryptonote_core/miner.cpp
index 51f508858..88c631f80 100644
--- a/src/cryptonote_core/miner.cpp
+++ b/src/cryptonote_core/miner.cpp
@@ -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" );
diff --git a/src/cryptonote_core/tx_pool.cpp b/src/cryptonote_core/tx_pool.cpp
index 6ad139023..f810f6a60 100644
--- a/src/cryptonote_core/tx_pool.cpp
+++ b/src/cryptonote_core/tx_pool.cpp
@@ -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))