User log constructor change

Now shifts to the end, is in order but takes only the lotest logs that it is able to.
This commit is contained in:
doggo 2021-06-05 21:25:27 -05:00
parent 6a79ca9c39
commit 84f835e8b8

View file

@ -36,17 +36,14 @@ struct User
{ {
if (log_j.size()) if (log_j.size())
{ {
unsigned size = ((log_j.size() / pre_log_size) + 1) * pre_log_size; // Ensures that we have a log size aligned on a multiple of `pre_log_size` uint32_t newLogSize = std::min(pre_log_size * ((log_j.size() / pre_log_size) + 1), max_log_size);
log.data.reserve(size); // Ensures that the log size is under `max_log_size` log.data.reserve(newLogSize);
size = std::min(log_j.size(), max_log_size); for (uint32_t i = std::max(0, log_j.size() - max_log_size); i < log_j.size(); i++) {
log.data.resize(size); log.data.push_back(std::move(Transaction(
for (uint32_t i = 0; i < size; ++i)
{
log.data[i] = std::move(Transaction(
log_j[i]["from"].asCString(), log_j[i]["from"].asCString(),
log_j[i]["to"].asCString(), log_j[i]["to"].asCString(),
log_j[i]["amount"].asUInt(), log_j[i]["amount"].asUInt(),
log_j[i]["time"].asUInt64())); log_j[i]["time"].asUInt64())));
} }
} }
} }