summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/other_tools/root_maps/commit_git_map.cpp2
-rw-r--r--src/other_tools/root_maps/commit_git_map.hpp9
2 files changed, 7 insertions, 4 deletions
diff --git a/src/other_tools/root_maps/commit_git_map.cpp b/src/other_tools/root_maps/commit_git_map.cpp
index e8dfeef4..d0b10258 100644
--- a/src/other_tools/root_maps/commit_git_map.cpp
+++ b/src/other_tools/root_maps/commit_git_map.cpp
@@ -136,7 +136,7 @@ void EnsureCommit(GitRepoInfo const& repo_info,
if (is_commit_present == std::nullopt) {
return;
}
- if (not *is_commit_present) {
+ if (not is_commit_present.value()) {
// if commit not there, fetch it
// get refspec for branch
GitOpKey op_key = {{
diff --git a/src/other_tools/root_maps/commit_git_map.hpp b/src/other_tools/root_maps/commit_git_map.hpp
index e032cf65..eb7c26a9 100644
--- a/src/other_tools/root_maps/commit_git_map.hpp
+++ b/src/other_tools/root_maps/commit_git_map.hpp
@@ -27,10 +27,10 @@ struct GitRepoInfo {
std::string hash{}; /* key */
std::string repo_url{};
std::string branch{};
- std::string subdir{};
+ std::string subdir{}; /* key */
[[nodiscard]] auto operator==(const GitRepoInfo& other) const -> bool {
- return hash == other.hash;
+ return hash == other.hash and subdir == other.subdir;
}
};
@@ -39,7 +39,10 @@ template <>
struct hash<GitRepoInfo> {
[[nodiscard]] auto operator()(const GitRepoInfo& ct) const noexcept
-> std::size_t {
- return std::hash<std::string>{}(ct.hash);
+ size_t seed{};
+ hash_combine<std::string>(&seed, ct.hash);
+ hash_combine<std::string>(&seed, ct.subdir);
+ return seed;
}
};
} // namespace std