aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2016-11-01 15:13:10 +0200
committerRiccardo Spagni <ric@spagni.net>2016-11-01 15:13:10 +0200
commit6f85b20d9206df2e6096ccfecb88ce2e9c6e4a45 (patch)
tree5c0cc61f5c268d8ea1b224615e49874d50ea036b
parentMerge pull request #1282 (diff)
parentadding static_assert to pod functions in string tools (diff)
downloadmonero-6f85b20d9206df2e6096ccfecb88ce2e9c6e4a45.tar.xz
Merge pull request #1283
4869db7 adding static_assert to pod functions in string tools (Lee Clagett)
-rw-r--r--contrib/epee/include/string_tools.h4
-rw-r--r--src/wallet/wallet2.cpp4
2 files changed, 6 insertions, 2 deletions
diff --git a/contrib/epee/include/string_tools.h b/contrib/epee/include/string_tools.h
index b3623298c..6292e471c 100644
--- a/contrib/epee/include/string_tools.h
+++ b/contrib/epee/include/string_tools.h
@@ -33,6 +33,7 @@
#include <locale>
#include <cstdlib>
#include <iomanip>
+#include <type_traits>
//#include <strsafe.h>
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_io.hpp>
@@ -171,6 +172,7 @@ namespace string_tools
template<class t_pod_type>
bool parse_tpod_from_hex_string(const std::string& str_hash, t_pod_type& t_pod)
{
+ static_assert(std::is_pod<t_pod_type>::value, "expected pod type");
std::string buf;
bool res = epee::string_tools::parse_hexstr_to_binbuff(str_hash, buf);
if (!res || buf.size() != sizeof(t_pod_type))
@@ -570,6 +572,7 @@ POP_WARNINGS
template<class t_pod_type>
std::string pod_to_hex(const t_pod_type& s)
{
+ static_assert(std::is_pod<t_pod_type>::value, "expected pod type");
std::string buff;
buff.assign(reinterpret_cast<const char*>(&s), sizeof(s));
return buff_to_hex_nodelimer(buff);
@@ -578,6 +581,7 @@ POP_WARNINGS
template<class t_pod_type>
bool hex_to_pod(const std::string& hex_str, t_pod_type& s)
{
+ static_assert(std::is_pod<t_pod_type>::value, "expected pod type");
std::string hex_str_tr = trim(hex_str);
if(sizeof(s)*2 != hex_str.size())
return false;
diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp
index 5ea8de5c7..8ea605375 100644
--- a/src/wallet/wallet2.cpp
+++ b/src/wallet/wallet2.cpp
@@ -527,14 +527,14 @@ void wallet2::process_new_transaction(const cryptonote::transaction& tx, const s
}
else if (m_transfers[kit->second].m_spent || m_transfers[kit->second].amount() >= tx.vout[o].amount)
{
- LOG_ERROR("key image " << epee::string_tools::pod_to_hex(ki)
+ LOG_ERROR("key image " << epee::string_tools::pod_to_hex(kit->first)
<< " from received " << print_money(tx.vout[o].amount) << " output already exists with "
<< (m_transfers[kit->second].m_spent ? "spent" : "unspent") << " "
<< print_money(m_transfers[kit->second].amount()) << ", received output ignored");
}
else
{
- LOG_ERROR("key image " << epee::string_tools::pod_to_hex(ki)
+ LOG_ERROR("key image " << epee::string_tools::pod_to_hex(kit->first)
<< " from received " << print_money(tx.vout[o].amount) << " output already exists with "
<< print_money(m_transfers[kit->second].amount()) << ", replacing with new output");
// The new larger output replaced a previous smaller one