mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-13 06:16:55 -04:00
Add constrained_block_size to granularity policy
This commit is contained in:
parent
18b306033b
commit
19b3424a3c
@ -283,6 +283,13 @@ class ConstantGranularityPolicy : private GranularityPolicyBase {
|
||||
chunkable_size_fail_message(size, kGranularity));
|
||||
}
|
||||
}
|
||||
|
||||
static size_t constrained_block_size(size_t size) {
|
||||
if constexpr (kGranularity > 1) {
|
||||
size -= size % kGranularity;
|
||||
}
|
||||
return size;
|
||||
}
|
||||
};
|
||||
|
||||
class VariableGranularityPolicy : private GranularityPolicyBase {
|
||||
@ -309,6 +316,13 @@ class VariableGranularityPolicy : private GranularityPolicyBase {
|
||||
}
|
||||
}
|
||||
|
||||
size_t constrained_block_size(size_t size) const {
|
||||
if (granularity_ > 1) {
|
||||
size -= size % granularity_;
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
||||
private:
|
||||
uint_fast32_t const granularity_;
|
||||
};
|
||||
@ -395,7 +409,7 @@ class segmenter_ final : public segmenter::impl, private GranularityPolicy {
|
||||
, block_ready_{std::move(block_ready)}
|
||||
, window_size_{window_size(cfg)}
|
||||
, window_step_{window_step(cfg)}
|
||||
, block_size_{block_size(cfg)}
|
||||
, block_size_{this->constrained_block_size(block_size(cfg))}
|
||||
, filter_{bloom_filter_size(cfg)}
|
||||
, match_counts_{1, 0, 128} {
|
||||
if (segmentation_enabled()) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user