🐛 fixed logs finally

This commit is contained in:
EntireTwix 2021-05-28 02:23:01 -07:00
parent efec7d0da9
commit a45dca028c
3 changed files with 13 additions and 6 deletions

View file

@ -235,7 +235,7 @@ public:
{ {
if constexpr (max_log_size) if constexpr (max_log_size)
{ {
users.try_emplace(u, temp[u]["balance"].asUInt(), std::move(temp[u]["password"].asUInt64()), std::move(temp[u]["log"])); users.try_emplace(u, temp[u]["balance"].asUInt(), std::move(temp[u]["password"].asUInt64()), temp[u]["log"]);
} }
else else
{ {

View file

@ -12,7 +12,14 @@ struct Log
{ {
if (data.size() <= end+1 && end+1 < max_log_size) //if memory reserved is full if (data.size() <= end+1 && end+1 < max_log_size) //if memory reserved is full
{ {
data.resize(data.size() + pre_log_size); //prefetching memory if(data.size() + pre_log_size > max_log_size)
{
data.resize(max_log_size);
}
else
{
data.resize(data.size() + pre_log_size); //prefetching memory
}
} }
for (uint32_t i = end; i > 0; --i) for (uint32_t i = end; i > 0; --i)
{ {

View file

@ -31,11 +31,11 @@ struct User
* @param init_pass * @param init_pass
*/ */
User(uint32_t init_bal, uint64_t init_pass) : balance(init_bal), password(init_pass) {} User(uint32_t init_bal, uint64_t init_pass) : balance(init_bal), password(init_pass) {}
User(uint32_t init_bal, uint64_t init_pass, Json::Value &&log_j) : balance(init_bal), password(init_pass) User(uint32_t init_bal, uint64_t init_pass, const Json::Value &log_j) : balance(init_bal), password(init_pass)
{ {
if (log_j.size()) if (log_j.size())
{ {
if (max_log_size > log_j.size() + pre_log_size) if (max_log_size > (log_j.size() + pre_log_size))
{ {
log.data.resize(log_j.size() + pre_log_size); log.data.resize(log_j.size() + pre_log_size);
log.end = log_j.size(); log.end = log_j.size();
@ -45,9 +45,9 @@ struct User
log.data.resize(max_log_size); log.data.resize(max_log_size);
log.end = max_log_size; log.end = max_log_size;
} }
for (uint32_t i = 0; i < log_j.size() && i < max_log_size; ++i) for (uint32_t i = 0; i < log.end; ++i)
{ {
log.data[i] = std::move(Transaction(log_j[i]["from"].asCString(), log_j[i]["to"].asCString(), log_j[i]["balance"].asUInt())); log.data[i] = std::move(Transaction(log_j[i]["from"].asCString(), log_j[i]["to"].asCString(), log_j[i]["amount"].asUInt()));
} }
} }
} }