diff options
Diffstat (limited to 'src/buildtool/execution_engine/tree_operations')
-rw-r--r-- | src/buildtool/execution_engine/tree_operations/tree_operations_utils.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/buildtool/execution_engine/tree_operations/tree_operations_utils.cpp b/src/buildtool/execution_engine/tree_operations/tree_operations_utils.cpp index ecf08e8e..fb7d3bf0 100644 --- a/src/buildtool/execution_engine/tree_operations/tree_operations_utils.cpp +++ b/src/buildtool/execution_engine/tree_operations/tree_operations_utils.cpp @@ -221,9 +221,16 @@ auto TreeOperationsUtils::SerializeGitTree( } auto it = git_entries.find(*git_hash); if (it == git_entries.end()) { - git_entries.insert({*git_hash, std::vector<GitRepo::TreeEntry>{}}); + if (auto res = git_entries.insert( + {*git_hash, std::vector<GitRepo::TreeEntry>{}}); + res.second) { + it = std::move(res).first; + } + else { + return std::nullopt; + } } - git_entries.at(*git_hash).emplace_back(name, entry.info.type); + it->second.emplace_back(name, entry.info.type); } // Serialize git entries. |