diff --git a/src/dwarfs/metadata_v2.cpp b/src/dwarfs/metadata_v2.cpp index ddddc74e..9b2dc4b3 100644 --- a/src/dwarfs/metadata_v2.cpp +++ b/src/dwarfs/metadata_v2.cpp @@ -25,7 +25,6 @@ #include #include #include -#include #include #include @@ -39,6 +38,8 @@ #include +#include + #include "dwarfs/error.h" #include "dwarfs/logger.h" #include "dwarfs/metadata_v2.h" @@ -213,6 +214,9 @@ class metadata_ : public metadata_v2::impl { size_t block_size() const override { return meta_.block_size(); } private: + template + using set_type = folly::F14ValueSet; + entry_view make_entry_view(size_t index) const { return entry_view(meta_.entries()[index], &meta_); } @@ -345,9 +349,8 @@ class metadata_ : public metadata_v2::impl { } template - void - walk(directory_view parent, entry_view entry, std::unordered_set& seen, - std::function const& func) const; + void walk(directory_view parent, entry_view entry, set_type& seen, + std::function const& func) const; std::optional get_entry(int inode) const { inode -= inode_offset_; @@ -589,7 +592,7 @@ std::string metadata_::modestring(uint16_t mode) const { template template void metadata_::walk(directory_view parent, entry_view entry, - std::unordered_set& seen, + set_type& seen, std::function const& func) const { walk_call(func, entry, parent); if (S_ISDIR(entry.mode())) { @@ -608,14 +611,14 @@ void metadata_::walk(directory_view parent, entry_view entry, template void metadata_::walk( std::function const& func) const { - std::unordered_set seen; + set_type seen; walk(make_directory_view(root_), root_, seen, func); } template void metadata_::walk( std::function const& func) const { - std::unordered_set seen; + set_type seen; walk(make_directory_view(root_), root_, seen, func); }