summaryrefslogtreecommitdiff
path: root/src/buildtool/common/repository_config.cpp
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2024-09-10 12:16:35 +0200
committerMaksim Denisov <denisov.maksim@huawei.com>2024-09-11 14:52:07 +0200
commitb716a901802314ad57588b4b75f9ea785219827a (patch)
treef704079ca50740ac6e4e07d2ce90ec992250f489 /src/buildtool/common/repository_config.cpp
parent60be90f22c17ff113339bae5915c372ac26348ba (diff)
downloadjustbuild-b716a901802314ad57588b4b75f9ea785219827a.tar.gz
Return ArtifactDigest from RepositoryConfig::RepositoryKey
...to prevent additional conversions to ArtifactDigest from plain strings.
Diffstat (limited to 'src/buildtool/common/repository_config.cpp')
-rw-r--r--src/buildtool/common/repository_config.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/buildtool/common/repository_config.cpp b/src/buildtool/common/repository_config.cpp
index 52694d0b..804bec2e 100644
--- a/src/buildtool/common/repository_config.cpp
+++ b/src/buildtool/common/repository_config.cpp
@@ -36,18 +36,16 @@ auto RepositoryConfig::RepositoryInfo::BaseContentDescription() const
auto RepositoryConfig::RepositoryKey(Storage const& storage,
std::string const& repo) const noexcept
- -> std::optional<std::string> {
+ -> std::optional<ArtifactDigest> {
auto const unique = DeduplicateRepo(repo, storage.GetHashFunction());
if (auto const* data = Data(unique)) {
// compute key only once (thread-safe)
return data->key.SetOnceAndGet(
- [this, &storage, &unique]() -> std::optional<std::string> {
+ [this, &storage, &unique]() -> std::optional<ArtifactDigest> {
if (auto graph = BuildGraphForRepository(
unique, storage.GetHashFunction())) {
auto const& cas = storage.CAS();
- if (auto digest = cas.StoreBlob(graph->dump(2))) {
- return digest->hash();
- }
+ return cas.StoreBlob(graph->dump(2));
}
return std::nullopt;
});