diff options
author | Kane York <kanepyork@gmail.com> | 2020-07-28T02·57-0700 |
---|---|---|
committer | kanepyork <rikingcoding@gmail.com> | 2020-08-01T01·15+0000 |
commit | 1cbffe21f3284fbad10b4ca27b0d8381bd554ff3 (patch) | |
tree | 921c90af406f009a660bb82eb40324a459bca7b7 /third_party/nix/src/libstore/store-api.cc | |
parent | 2a292c71f40f3592e33534ee6d63eb2ca5221d5e (diff) |
chore(3p/nix/hash): prefer StatusOr over throwing constructor r/1515
The use of `unwrap_throw` can be used as a later grep target. Change-Id: I8c54ed90c4289f07aecb8a1393dd10204c8bce4e Reviewed-on: https://cl.tvl.fyi/c/depot/+/1493 Reviewed-by: glittershark <grfn@gws.fyi> Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
Diffstat (limited to 'third_party/nix/src/libstore/store-api.cc')
-rw-r--r-- | third_party/nix/src/libstore/store-api.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/third_party/nix/src/libstore/store-api.cc b/third_party/nix/src/libstore/store-api.cc index f6fef4b912f2..a68e6e8fc812 100644 --- a/third_party/nix/src/libstore/store-api.cc +++ b/third_party/nix/src/libstore/store-api.cc @@ -774,7 +774,8 @@ ValidPathInfo decodeValidPathInfo(std::istream& str, bool hashGiven) { if (hashGiven) { std::string s; getline(str, s); - info.narHash = Hash(s, htSHA256); + auto hash_ = Hash::deserialize(s, htSHA256); + info.narHash = Hash::unwrap_throw(hash_); getline(str, s); if (!absl::SimpleAtoi(s, &info.narSize)) { throw Error("number expected"); @@ -829,7 +830,8 @@ bool ValidPathInfo::isContentAddressed(const Store& store) const { }; if (absl::StartsWith(ca, "text:")) { - Hash hash(std::string(ca, 5)); + auto hash_ = Hash::deserialize(std::string_view(ca).substr(5)); + Hash hash = Hash::unwrap_throw(hash_); if (store.makeTextPath(storePathToName(path), hash, references) == path) { return true; } @@ -839,7 +841,9 @@ bool ValidPathInfo::isContentAddressed(const Store& store) const { else if (absl::StartsWith(ca, "fixed:")) { bool recursive = ca.compare(6, 2, "r:") == 0; - Hash hash(std::string(ca, recursive ? 8 : 6)); + auto hash_ = + Hash::deserialize(std::string_view(ca).substr(recursive ? 8 : 6)); + Hash hash = Hash::unwrap_throw(hash_); if (references.empty() && store.makeFixedOutputPath(recursive, hash, storePathToName(path)) == path) { |