diff options
author | Lee Clagett <code@leeclagett.com> | 2016-10-31 13:22:21 -0400 |
---|---|---|
committer | Lee Clagett <code@leeclagett.com> | 2016-10-31 13:22:21 -0400 |
commit | 4869db702afcda561abc9347b3c9d3060e9c5ac0 (patch) | |
tree | 743b88a3cc87cad3579bdb3876a637f837fd2759 | |
parent | Merge pull request #1270 (diff) | |
download | monero-4869db702afcda561abc9347b3c9d3060e9c5ac0.tar.xz |
adding static_assert to pod functions in string tools
Diffstat (limited to '')
-rw-r--r-- | contrib/epee/include/string_tools.h | 4 | ||||
-rw-r--r-- | src/wallet/wallet2.cpp | 4 |
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 a02c2e4e5..d3e8ac4c5 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -518,14 +518,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 |