added missing comparator, fixed serialized size
diff --git a/req/include/req_compactor_impl.hpp b/req/include/req_compactor_impl.hpp
index e2f8ce8..4db9c78 100755
--- a/req/include/req_compactor_impl.hpp
+++ b/req/include/req_compactor_impl.hpp
@@ -219,7 +219,7 @@
auto other_it = other.begin();
for (auto it = from; it != to; ++it, ++other_it) new (it) T(conditional_forward<FwdC>(*other_it));
if (!other.sorted_) std::sort(from, to, C());
- if (num_items_ > 0) std::inplace_merge(H ? from : begin(), middle, H ? end() : to);
+ if (num_items_ > 0) std::inplace_merge(H ? from : begin(), middle, H ? end() : to, C());
num_items_ += other.get_num_items();
}
@@ -265,7 +265,6 @@
const float ssr = section_size_raw_ / sqrt(2);
const uint32_t ne = nearest_even(ssr);
if (state_ >= static_cast<uint64_t>(1 << (num_sections_ - 1)) && ne >= req_constants::MIN_K) {
- //std::cout << "lg weight: " << std::to_string(lg_weight_) << ", num sections: " << std::to_string(num_sections_) << ", new sec size: " << ssr << " -> " << ne << "\n";
section_size_raw_ = ssr;
section_size_ = ne;
num_sections_ <<= 1;
@@ -335,8 +334,7 @@
size_t size = sizeof(state_) + sizeof(section_size_raw_) + sizeof(lg_weight_) + sizeof(num_sections_) +
sizeof(uint16_t) + // padding
sizeof(uint32_t); // num_items
- sizeof(TT) * num_items_;
- for (const auto& item: items_) size += serde.size_of_item(item);
+ for (auto it = begin(); it != end(); ++it) size += serde.size_of_item(*it);
return size;
}