diff options
author | Klaus Aehlig <klaus.aehlig@huawei.com> | 2024-07-22 17:29:02 +0200 |
---|---|---|
committer | Klaus Aehlig <klaus.aehlig@huawei.com> | 2024-07-23 17:31:49 +0200 |
commit | aade92f3feba199a9e997aaed8fbc8eb0b610b0a (patch) | |
tree | 16b69c50ab4414ca7c0e0c231a84c7e06b79408a /src/other_tools/root_maps/commit_git_map.cpp | |
parent | 1b4917d40e5b4bbfeae5146bc826299bbc27898f (diff) | |
download | justbuild-aade92f3feba199a9e997aaed8fbc8eb0b610b0a.tar.gz |
git_commit_map: avoid duplicate creation and fix usage
... as CheckCommitExists returns an optional bool, not a plain one.
Diffstat (limited to 'src/other_tools/root_maps/commit_git_map.cpp')
-rw-r--r-- | src/other_tools/root_maps/commit_git_map.cpp | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/src/other_tools/root_maps/commit_git_map.cpp b/src/other_tools/root_maps/commit_git_map.cpp index 8efd628a..479068e2 100644 --- a/src/other_tools/root_maps/commit_git_map.cpp +++ b/src/other_tools/root_maps/commit_git_map.cpp @@ -622,19 +622,22 @@ void EnsureCommit(GitRepoInfo const& repo_info, auto old_repo = GitRepo::Open(old); auto no_logging = std::make_shared<AsyncMapConsumerLogger>( [](auto /*unused*/, auto /*unused*/) {}); - if (old_repo and GitRepo::Open(old)->CheckCommitExists( - repo_info.hash, no_logging)) { - TakeCommitFromOlderGeneration(old, - storage_config, - repo_root, - repo_info, - git_cas, - critical_git_op_map, - progress, - ts, - ws_setter, - logger); - return; + if (old_repo) { + auto check_result = + old_repo->CheckCommitExists(repo_info.hash, no_logging); + if (check_result and *check_result) { + TakeCommitFromOlderGeneration(old, + storage_config, + repo_root, + repo_info, + git_cas, + critical_git_op_map, + progress, + ts, + ws_setter, + logger); + return; + } } } } |