From 99f35a11dfc431d9d05851a077b2f1a0177ef2f3 Mon Sep 17 00:00:00 2001 From: EntireTwix Date: Tue, 6 Jul 2021 02:09:53 -0700 Subject: [PATCH] :bug: Max log 1 optimizations fixed --- src/bank.cpp | 2 +- src/user.cpp | 21 ++++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/bank.cpp b/src/bank.cpp index 79ddb03..5615e1f 100644 --- a/src/bank.cpp +++ b/src/bank.cpp @@ -25,7 +25,7 @@ size_t Bank::NumOfUsers() const noexcept { return users.size(); } uint64_t Bank::NumOfLogs() const noexcept { uint64_t res = 0; -#if MAX_LOG_SIZE > 0 +#if MAX_LOG_SIZE > 1 for (const auto &u : users) { res += u.second.log.data.size(); diff --git a/src/user.cpp b/src/user.cpp index eff1b73..1f46ca4 100644 --- a/src/user.cpp +++ b/src/user.cpp @@ -27,17 +27,24 @@ User::User(uint32_t init_bal, XXH64_hash_t init_pass, const Json::Value &log_j) { if (log_j.size()) { +#if MAX_LOG_SIZE != 1 log.data.reserve(std::min((size_t)PRE_LOG_SIZE * ((log_j.size() / PRE_LOG_SIZE) + 1), (size_t)MAX_LOG_SIZE)); +#endif for (uint32_t i = (log_j.size() - MAX_LOG_SIZE) * (log_j.size() > MAX_LOG_SIZE); i < log_j.size(); i++) { - log.data.push_back(Transaction( - log_j[i]["from"].asCString(), - log_j[i]["to"].asCString(), - log_j[i]["amount"].asUInt(), -#ifdef _USE_32BIT_TIME_T - log_j[i]["time"].asUInt())); +#if MAX_LOG_SIZE == 1 + log.data = ( #else - log_j[i]["time"].asUInt64())); + log.data.push_back( +#endif + Transaction( + log_j[i]["from"].asCString(), + log_j[i]["to"].asCString(), + log_j[i]["amount"].asUInt(), +#ifdef _USE_32BIT_TIME_T + log_j[i]["time"].asUInt())); +#else + log_j[i]["time"].asUInt64())); #endif } }