diff --git a/include/dwarfs/writer/entry_factory.h b/include/dwarfs/writer/entry_factory.h index 1fbb193e..16a29904 100644 --- a/include/dwarfs/writer/entry_factory.h +++ b/include/dwarfs/writer/entry_factory.h @@ -38,11 +38,12 @@ class entry; class entry_factory { public: + using node = std::shared_ptr; + entry_factory(); - std::shared_ptr - create(os_access const& os, std::filesystem::path const& path, - std::shared_ptr parent = nullptr) { + node create(os_access const& os, std::filesystem::path const& path, + node parent = {}) { return impl_->create(os, path, std::move(parent)); } @@ -50,9 +51,8 @@ class entry_factory { public: virtual ~impl() = default; - virtual std::shared_ptr - create(os_access const& os, std::filesystem::path const& path, - std::shared_ptr parent) = 0; + virtual node create(os_access const& os, std::filesystem::path const& path, + node parent) = 0; }; private: diff --git a/src/writer/entry_factory.cpp b/src/writer/entry_factory.cpp index cae73a88..9abd7b39 100644 --- a/src/writer/entry_factory.cpp +++ b/src/writer/entry_factory.cpp @@ -30,9 +30,9 @@ namespace internal { class entry_factory_ : public entry_factory::impl { public: - std::shared_ptr + entry_factory::node create(os_access const& os, std::filesystem::path const& path, - std::shared_ptr parent) override { + entry_factory::node parent) override { auto st = os.symlink_info(path); switch (st.type()) { diff --git a/src/writer/scanner.cpp b/src/writer/scanner.cpp index ee8061a8..c940483b 100644 --- a/src/writer/scanner.cpp +++ b/src/writer/scanner.cpp @@ -311,14 +311,14 @@ class scanner_ final : public scanner::impl { std::shared_ptr fa) override; private: - std::shared_ptr scan_tree(std::filesystem::path const& path, - progress& prog, file_scanner& fs); + entry_factory::node scan_tree(std::filesystem::path const& path, + progress& prog, file_scanner& fs); - std::shared_ptr scan_list(std::filesystem::path const& rootpath, - std::span list, - progress& prog, file_scanner& fs); + entry_factory::node scan_list(std::filesystem::path const& rootpath, + std::span list, + progress& prog, file_scanner& fs); - std::shared_ptr + entry_factory::node add_entry(std::filesystem::path const& name, std::shared_ptr const& parent, progress& prog, file_scanner& fs, bool debug_filter = false); @@ -366,7 +366,7 @@ FOLLY_PUSH_WARNING FOLLY_GCC_DISABLE_WARNING("-Wnrvo") template -std::shared_ptr +entry_factory::node scanner_::add_entry(std::filesystem::path const& name, std::shared_ptr const& parent, progress& prog, file_scanner& fs, @@ -521,7 +521,7 @@ void scanner_::dump_state( } template -std::shared_ptr +entry_factory::node scanner_::scan_tree(std::filesystem::path const& path, progress& prog, file_scanner& fs) { auto root = entry_factory_.create(os_, path); @@ -536,7 +536,7 @@ scanner_::scan_tree(std::filesystem::path const& path, t->transform(*root); } - std::deque> queue({root}); + std::deque queue({root}); prog.dirs_found++; while (!queue.empty()) { @@ -550,7 +550,7 @@ scanner_::scan_tree(std::filesystem::path const& path, try { auto d = os_.opendir(ppath); std::filesystem::path name; - std::vector> subdirs; + std::vector subdirs; while (d->read(name)) { if (auto pe = add_entry(name, parent, prog, fs, debug_filter)) { @@ -575,7 +575,7 @@ scanner_::scan_tree(std::filesystem::path const& path, } template -std::shared_ptr +entry_factory::node scanner_::scan_list(std::filesystem::path const& rootpath, std::span list, progress& prog, file_scanner& fs) { @@ -601,7 +601,7 @@ scanner_::scan_list(std::filesystem::path const& rootpath, } auto ensure_path = [this, &prog, &fs](std::filesystem::path const& path, - std::shared_ptr root) { + entry_factory::node root) { LOG_TRACE << "ensuring path '" << path_to_utf8_string_sanitized(path) << "'";