diff options
author | Maksim Denisov <denisov.maksim@huawei.com> | 2025-02-27 12:43:07 +0100 |
---|---|---|
committer | Maksim Denisov <denisov.maksim@huawei.com> | 2025-02-28 13:44:06 +0100 |
commit | 2b4e781e2e14653201b81b12e1b332a7462691b7 (patch) | |
tree | bdad7df8f2ef872ff28e739081e323e135437ddb | |
parent | 87832d98f34cec0513e5abc14e912eec3100e975 (diff) | |
download | justbuild-2b4e781e2e14653201b81b12e1b332a7462691b7.tar.gz |
GraphTraverser: Pass blobs to UploadBlobs by rvalue
...in order to avoid copying while uploading.
-rw-r--r-- | src/buildtool/graph_traverser/graph_traverser.hpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/buildtool/graph_traverser/graph_traverser.hpp b/src/buildtool/graph_traverser/graph_traverser.hpp index 9dc32b61..b85902be 100644 --- a/src/buildtool/graph_traverser/graph_traverser.hpp +++ b/src/buildtool/graph_traverser/graph_traverser.hpp @@ -313,22 +313,19 @@ class GraphTraverser { /// of the uploads fails, execution is terminated /// \param[in] blobs blobs to be uploaded [[nodiscard]] auto UploadBlobs( - std::vector<std::string> const& blobs) const noexcept -> bool { + std::vector<std::string>&& blobs) const noexcept -> bool { std::unordered_set<ArtifactBlob> container; HashFunction const hash_function{context_.apis->remote->GetHashType()}; - for (auto const& content : blobs) { + for (auto& content : blobs) { auto blob = ArtifactBlob::FromMemory( - hash_function, ObjectType::File, content); + hash_function, ObjectType::File, std::move(content)); if (not blob.has_value()) { - logger_->Emit(LogLevel::Trace, - "Failed to create ArtifactBlob for:\n{}", - nlohmann::json(content).dump()); + logger_->Emit(LogLevel::Trace, "Failed to create ArtifactBlob"); return false; } Logger::Log(logger_, LogLevel::Trace, [&]() { return fmt::format( - "Will upload blob {}, its digest has id {} and size {}.", - nlohmann::json(content).dump(), + "Will upload blob, its digest has id {} and size {}.", blob->GetDigest().hash(), blob->GetDigest().size()); }); @@ -507,7 +504,7 @@ class GraphTraverser { std::tuple<std::vector<std::filesystem::path>, std::vector<DependencyGraph::ArtifactNode const*>, std::vector<DependencyGraph::ArtifactNode const*>>> { - if (not UploadBlobs(blobs)) { + if (not UploadBlobs(std::move(blobs))) { return std::nullopt; } |