aboutsummaryrefslogtreecommitdiff
path: root/src/rpc/rpc_payment.cpp
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2021-06-10 12:00:54 -0500
committerluigi1111 <luigi1111w@gmail.com>2021-06-10 12:00:54 -0500
commit7499837a6fe8d3533e1360dce8f3ba230ff76042 (patch)
treecd3e089e2e09de33044220ff72461a761b028e3f /src/rpc/rpc_payment.cpp
parentca732849515d1e01147ded7db05defdb5518b13b (diff)
parent08e4497c6e3b3f434c0bb255c3942648f153fe66 (diff)
downloadmonzero-core-7499837a6fe8d3533e1360dce8f3ba230ff76042.tar.gz
monzero-core-7499837a6fe8d3533e1360dce8f3ba230ff76042.tar.xz
monzero-core-7499837a6fe8d3533e1360dce8f3ba230ff76042.zip
Merge pull request #7661
08e4497 Improve cryptonote (block and tx) binary read performance (Lee Clagett)
Diffstat (limited to 'src/rpc/rpc_payment.cpp')
-rw-r--r--src/rpc/rpc_payment.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/rpc/rpc_payment.cpp b/src/rpc/rpc_payment.cpp
index bf6584f72..f0c513911 100644
--- a/src/rpc/rpc_payment.cpp
+++ b/src/rpc/rpc_payment.cpp
@@ -293,12 +293,13 @@ namespace cryptonote
MINFO("loading rpc payments data from " << state_file_path);
std::ifstream data;
data.open(state_file_path, std::ios_base::binary | std::ios_base::in);
+ std::string bytes(std::istream_iterator<char>{data}, std::istream_iterator<char>{});
if (!data.fail())
{
bool loaded = false;
try
{
- binary_archive<false> ar(data);
+ binary_archive<false> ar{epee::strspan<std::uint8_t>(bytes)};
if (::serialization::serialize(ar, *this))
if (::serialization::check_stream_state(ar))
loaded = true;
@@ -306,6 +307,8 @@ namespace cryptonote
catch (...) {}
if (!loaded)
{
+ bytes.clear();
+ bytes.shrink_to_fit();
try
{
boost::archive::portable_binary_iarchive a(data);