mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-09 12:28:13 -04:00
Refactor inode needs_scan method
This commit is contained in:
parent
bacdef0ac3
commit
a2e6b93512
@ -46,7 +46,6 @@ class inode : public object {
|
||||
using files_vector = folly::small_vector<file*, 1>;
|
||||
|
||||
virtual void set_files(files_vector&& fv) = 0;
|
||||
virtual bool needs_scan(inode_options const& opts, size_t size) const = 0;
|
||||
virtual void set_similarity_valid(inode_options const& opts) = 0;
|
||||
virtual void scan(mmif* mm, inode_options const& options) = 0;
|
||||
virtual void set_num(uint32_t num) = 0;
|
||||
|
@ -78,7 +78,11 @@ struct inode_options {
|
||||
bool with_nilsimsa{false};
|
||||
std::optional<size_t> max_similarity_scan_size;
|
||||
|
||||
bool needs_scan() const { return with_similarity || with_nilsimsa; }
|
||||
bool needs_scan(size_t size) const {
|
||||
return (with_similarity || with_nilsimsa) &&
|
||||
(!max_similarity_scan_size ||
|
||||
size <= max_similarity_scan_size.value());
|
||||
}
|
||||
};
|
||||
|
||||
enum class file_order_mode { NONE, PATH, SCRIPT, SIMILARITY, NILSIMSA };
|
||||
|
@ -308,7 +308,7 @@ void file_scanner_::add_inode(file* p) {
|
||||
|
||||
p->set_inode(inode);
|
||||
|
||||
if (inode->needs_scan(ino_opts_, p->size())) {
|
||||
if (ino_opts_.needs_scan(p->size())) {
|
||||
wg_.add_job([this, p, inode = std::move(inode)] {
|
||||
std::shared_ptr<mmif> mm;
|
||||
auto const size = p->size();
|
||||
|
@ -127,11 +127,6 @@ class inode_ : public inode {
|
||||
files_ = std::move(fv);
|
||||
}
|
||||
|
||||
bool needs_scan(inode_options const& opts, size_t size) const override {
|
||||
return opts.needs_scan() && (!opts.max_similarity_scan_size ||
|
||||
size <= opts.max_similarity_scan_size.value());
|
||||
}
|
||||
|
||||
void
|
||||
set_similarity_valid(inode_options const& opts [[maybe_unused]]) override {
|
||||
#ifndef NDEBUG
|
||||
|
Loading…
x
Reference in New Issue
Block a user