};
for (auto &key : stales) {
- write_size += key.length() + sizeof(__u32);
- _rm.emplace(key);
-
- if (write_size >= max_write_size)
+ unsigned size = key.length() + sizeof(__u32);
+ if (write_size + size > max_write_size)
commit_one();
+
+ write_size += size;
+ _rm.emplace(key);
}
for (auto &k : to_remove) {
string key;
k.encode(key);
- write_size += key.length() + sizeof(__u32);
- _rm.emplace(std::move(key));
-
- if (write_size >= max_write_size)
+ unsigned size = key.length() + sizeof(__u32);
+ if (write_size + size > max_write_size)
commit_one();
+
+ write_size += size;
+ _rm.emplace(std::move(key));
}
uint64_t off = 0;
}
off += item.dft_len;
- write_size += key.length() + bl.length() + 2 * sizeof(__u32);
- _set[std::move(key)].swap(bl);
- if (write_size >= max_write_size)
+ unsigned size = key.length() + bl.length() + 2 * sizeof(__u32);
+ if (write_size + size > max_write_size)
commit_one();
+
+ write_size += size;
+ _set[std::move(key)].swap(bl);
}
commit_one(true);