diff --git a/include/dwarfs/inode.h b/include/dwarfs/inode.h index 10ad7484..dbca37e5 100644 --- a/include/dwarfs/inode.h +++ b/include/dwarfs/inode.h @@ -46,7 +46,6 @@ class inode : public object { using files_vector = folly::small_vector; 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; diff --git a/include/dwarfs/options.h b/include/dwarfs/options.h index cf338c04..dfc2e590 100644 --- a/include/dwarfs/options.h +++ b/include/dwarfs/options.h @@ -78,7 +78,11 @@ struct inode_options { bool with_nilsimsa{false}; std::optional 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 }; diff --git a/src/dwarfs/file_scanner.cpp b/src/dwarfs/file_scanner.cpp index 00a02f0a..5031b241 100644 --- a/src/dwarfs/file_scanner.cpp +++ b/src/dwarfs/file_scanner.cpp @@ -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 mm; auto const size = p->size(); diff --git a/src/dwarfs/inode_manager.cpp b/src/dwarfs/inode_manager.cpp index 117c55b2..cfdd5024 100644 --- a/src/dwarfs/inode_manager.cpp +++ b/src/dwarfs/inode_manager.cpp @@ -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