From fdddf95bfc0cb86641ab72992f4fffdb63cbdefa Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Sun, 16 Mar 2025 18:31:35 +0100 Subject: [PATCH] refactor: pass perfmon `shared_ptr` by const reference --- include/dwarfs/reader/filesystem_v2.h | 15 +++++---- include/dwarfs/reader/internal/block_cache.h | 2 +- .../dwarfs/reader/internal/inode_reader_v2.h | 2 +- include/dwarfs/reader/internal/metadata_v2.h | 9 ++--- src/reader/filesystem_v2.cpp | 33 +++++++++---------- src/reader/internal/block_cache.cpp | 12 +++---- src/reader/internal/inode_reader_v2.cpp | 8 ++--- src/reader/internal/metadata_v2.cpp | 15 +++++---- 8 files changed, 49 insertions(+), 47 deletions(-) diff --git a/include/dwarfs/reader/filesystem_v2.h b/include/dwarfs/reader/filesystem_v2.h index 49ed6608..eb48c68e 100644 --- a/include/dwarfs/reader/filesystem_v2.h +++ b/include/dwarfs/reader/filesystem_v2.h @@ -75,16 +75,17 @@ class filesystem_v2 { filesystem_v2(logger& lgr, os_access const& os, std::filesystem::path const& path); - filesystem_v2(logger& lgr, os_access const& os, - std::filesystem::path const& path, - filesystem_options const& options, - std::shared_ptr perfmon = nullptr); + filesystem_v2( + logger& lgr, os_access const& os, std::filesystem::path const& path, + filesystem_options const& options, + std::shared_ptr const& perfmon = nullptr); filesystem_v2(logger& lgr, os_access const& os, std::shared_ptr mm); - filesystem_v2(logger& lgr, os_access const& os, std::shared_ptr mm, - filesystem_options const& options, - std::shared_ptr perfmon = nullptr); + filesystem_v2( + logger& lgr, os_access const& os, std::shared_ptr mm, + filesystem_options const& options, + std::shared_ptr const& perfmon = nullptr); static int identify(logger& lgr, os_access const& os, std::shared_ptr mm, diff --git a/include/dwarfs/reader/internal/block_cache.h b/include/dwarfs/reader/internal/block_cache.h index 075eb901..923013d7 100644 --- a/include/dwarfs/reader/internal/block_cache.h +++ b/include/dwarfs/reader/internal/block_cache.h @@ -55,7 +55,7 @@ class block_cache { public: block_cache(logger& lgr, os_access const& os, std::shared_ptr mm, const block_cache_options& options, - std::shared_ptr perfmon); + std::shared_ptr const& perfmon); size_t block_count() const { return impl_->block_count(); } diff --git a/include/dwarfs/reader/internal/inode_reader_v2.h b/include/dwarfs/reader/internal/inode_reader_v2.h index 273a232d..28d2ace9 100644 --- a/include/dwarfs/reader/internal/inode_reader_v2.h +++ b/include/dwarfs/reader/internal/inode_reader_v2.h @@ -54,7 +54,7 @@ class inode_reader_v2 { inode_reader_v2(logger& lgr, block_cache&& bc, inode_reader_options const& opts, - std::shared_ptr perfmon); + std::shared_ptr const& perfmon); inode_reader_v2& operator=(inode_reader_v2&&) = default; diff --git a/include/dwarfs/reader/internal/metadata_v2.h b/include/dwarfs/reader/internal/metadata_v2.h index 478a7ab9..a1d86883 100644 --- a/include/dwarfs/reader/internal/metadata_v2.h +++ b/include/dwarfs/reader/internal/metadata_v2.h @@ -65,10 +65,11 @@ class metadata_v2 { metadata_v2(metadata_v2&&) = default; metadata_v2& operator=(metadata_v2&&) = default; - metadata_v2(logger& lgr, std::span schema, - std::span data, metadata_options const& options, - int inode_offset = 0, bool force_consistency_check = false, - std::shared_ptr perfmon = nullptr); + metadata_v2( + logger& lgr, std::span schema, + std::span data, metadata_options const& options, + int inode_offset = 0, bool force_consistency_check = false, + std::shared_ptr const& perfmon = nullptr); void check_consistency() const { impl_->check_consistency(); } diff --git a/src/reader/filesystem_v2.cpp b/src/reader/filesystem_v2.cpp index 528e9b53..affcddf6 100644 --- a/src/reader/filesystem_v2.cpp +++ b/src/reader/filesystem_v2.cpp @@ -153,11 +153,10 @@ metadata_v2 make_metadata(logger& lgr, std::shared_ptr mm, section_map const& sections, std::vector& schema_buffer, std::vector& meta_buffer, - const metadata_options& options, int inode_offset = 0, - bool force_buffers = false, - mlock_mode lock_mode = mlock_mode::NONE, - bool force_consistency_check = false, - std::shared_ptr perfmon = nullptr) { + const metadata_options& options, int inode_offset, + bool force_buffers, mlock_mode lock_mode, + bool force_consistency_check, + std::shared_ptr const& perfmon) { LOG_PROXY(debug_logger_policy, lgr); auto schema_it = sections.find(section_type::METADATA_V2_SCHEMA); auto meta_it = sections.find(section_type::METADATA_V2); @@ -217,7 +216,7 @@ class filesystem_ final : public filesystem_v2::impl { public: filesystem_(logger& lgr, os_access const& os, std::shared_ptr mm, const filesystem_options& options, - std::shared_ptr perfmon); + std::shared_ptr const& perfmon); int check(filesystem_check_level level, size_t num_threads) const override; void dump(std::ostream& os, fsinfo_options const& opts) const override; @@ -438,7 +437,7 @@ template filesystem_::filesystem_( logger& lgr, os_access const& os, std::shared_ptr mm, filesystem_options const& options, - std::shared_ptr perfmon) + std::shared_ptr const& perfmon) : LOG_PROXY_INIT(lgr) , os_{os} , mm_{std::move(mm)} @@ -1106,24 +1105,24 @@ filesystem_v2::filesystem_v2(logger& lgr, os_access const& os, std::filesystem::path const& path) : filesystem_v2(lgr, os, os.map_file(os.canonical(path))) {} -filesystem_v2::filesystem_v2(logger& lgr, os_access const& os, - std::filesystem::path const& path, - filesystem_options const& options, - std::shared_ptr perfmon) +filesystem_v2::filesystem_v2( + logger& lgr, os_access const& os, std::filesystem::path const& path, + filesystem_options const& options, + std::shared_ptr const& perfmon) : filesystem_v2(lgr, os, os.map_file(os.canonical(path)), options, - std::move(perfmon)) {} + perfmon) {} filesystem_v2::filesystem_v2(logger& lgr, os_access const& os, std::shared_ptr mm) : filesystem_v2(lgr, os, std::move(mm), filesystem_options()) {} -filesystem_v2::filesystem_v2(logger& lgr, os_access const& os, - std::shared_ptr mm, - const filesystem_options& options, - std::shared_ptr perfmon) +filesystem_v2::filesystem_v2( + logger& lgr, os_access const& os, std::shared_ptr mm, + const filesystem_options& options, + std::shared_ptr const& perfmon) : impl_(make_unique_logging_object( - lgr, os, std::move(mm), options, std::move(perfmon))) {} + lgr, os, std::move(mm), options, perfmon)) {} int filesystem_v2::identify(logger& lgr, os_access const& os, std::shared_ptr mm, std::ostream& output, diff --git a/src/reader/internal/block_cache.cpp b/src/reader/internal/block_cache.cpp index 8d8199f5..c4febb5d 100644 --- a/src/reader/internal/block_cache.cpp +++ b/src/reader/internal/block_cache.cpp @@ -219,7 +219,7 @@ class block_cache_ final : public block_cache::impl { public: block_cache_(logger& lgr, os_access const& os, std::shared_ptr mm, block_cache_options const& options, - std::shared_ptr perfmon + std::shared_ptr const& perfmon [[maybe_unused]]) : cache_(0) , mm_(std::move(mm)) @@ -802,11 +802,11 @@ class block_cache_ final : public block_cache::impl { } // namespace -block_cache::block_cache(logger& lgr, os_access const& os, - std::shared_ptr mm, - const block_cache_options& options, - std::shared_ptr perfmon) +block_cache::block_cache( + logger& lgr, os_access const& os, std::shared_ptr mm, + const block_cache_options& options, + std::shared_ptr const& perfmon) : impl_(make_unique_logging_object( - lgr, os, std::move(mm), options, std::move(perfmon))) {} + lgr, os, std::move(mm), options, perfmon)) {} } // namespace dwarfs::reader::internal diff --git a/src/reader/internal/inode_reader_v2.cpp b/src/reader/internal/inode_reader_v2.cpp index 80e77f6f..08e320de 100644 --- a/src/reader/internal/inode_reader_v2.cpp +++ b/src/reader/internal/inode_reader_v2.cpp @@ -99,7 +99,7 @@ template class inode_reader_ final : public inode_reader_v2::impl { public: inode_reader_(logger& lgr, block_cache&& bc, inode_reader_options const& opts, - std::shared_ptr perfmon + std::shared_ptr const& perfmon [[maybe_unused]]) : cache_(std::move(bc)) , opts_{opts} @@ -457,9 +457,9 @@ size_t inode_reader_::readv(iovec_read_buf& buf, uint32_t inode, inode_reader_v2::inode_reader_v2( logger& lgr, block_cache&& bc, inode_reader_options const& opts, - std::shared_ptr perfmon) + std::shared_ptr const& perfmon) : impl_(make_unique_logging_object( - lgr, std::move(bc), opts, std::move(perfmon))) {} + logger_policies>(lgr, std::move(bc), + opts, perfmon)) {} } // namespace dwarfs::reader::internal diff --git a/src/reader/internal/metadata_v2.cpp b/src/reader/internal/metadata_v2.cpp index c10d912f..ca0a8016 100644 --- a/src/reader/internal/metadata_v2.cpp +++ b/src/reader/internal/metadata_v2.cpp @@ -397,7 +397,8 @@ class metadata_ final : public metadata_v2::impl { metadata_(logger& lgr, std::span schema, std::span data, metadata_options const& options, int inode_offset, bool force_consistency_check, - std::shared_ptr perfmon [[maybe_unused]]) + std::shared_ptr const& perfmon + [[maybe_unused]]) : data_(data) , meta_( check_frozen(map_frozen(schema, data_))) @@ -2193,14 +2194,14 @@ std::vector metadata_::get_all_gids() const { return rv; } -metadata_v2::metadata_v2(logger& lgr, std::span schema, - std::span data, - metadata_options const& options, int inode_offset, - bool force_consistency_check, - std::shared_ptr perfmon) +metadata_v2::metadata_v2( + logger& lgr, std::span schema, std::span data, + metadata_options const& options, int inode_offset, + bool force_consistency_check, + std::shared_ptr const& perfmon) : impl_(make_unique_logging_object( lgr, schema, data, options, inode_offset, force_consistency_check, - std::move(perfmon))) {} + perfmon)) {} } // namespace dwarfs::reader::internal