diff options
author | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2025-06-13 13:14:27 +0200 |
---|---|---|
committer | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2025-06-16 17:27:29 +0200 |
commit | 223f67c2cbf4648c3aaa907ec0edf98e53b574e9 (patch) | |
tree | 7dd1e9aa2dd8a2470984a65d841e222b2226fa59 /src/buildtool/execution_api/common | |
parent | febe0937cf4394bc0f908e13fd0b6ab63b2c29c2 (diff) | |
download | justbuild-223f67c2cbf4648c3aaa907ec0edf98e53b574e9.tar.gz |
Avoid unnecessary work in accessing container entries
- in sequence containers, use operator[] instead of .at() when
accessing indices guaranteed to be in bound;
- in associative containers, prefer .find() and reusing the
returned const iterator to using .contains() and .at(); while
there, make any so obtained iterators const if they are read-only.
Diffstat (limited to 'src/buildtool/execution_api/common')
-rw-r--r-- | src/buildtool/execution_api/common/bytestream_utils.cpp | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/buildtool/execution_api/common/bytestream_utils.cpp b/src/buildtool/execution_api/common/bytestream_utils.cpp index 93acede8..fa91cd98 100644 --- a/src/buildtool/execution_api/common/bytestream_utils.cpp +++ b/src/buildtool/execution_api/common/bytestream_utils.cpp @@ -34,15 +34,15 @@ namespace { std::size_t shift = 0; for (std::size_t length = 0; shift + length < request.size(); ++length) { - if (request.at(shift + length) == '/') { - parts.emplace_back(&request.at(shift), length); + if (request[shift + length] == '/') { + parts.emplace_back(&request[shift], length); shift += length + 1; length = 0; } } if (shift < request.size()) { - parts.emplace_back(&request.at(shift), request.size() - shift); + parts.emplace_back(&request[shift], request.size() - shift); } } catch (...) { return {}; @@ -80,15 +80,15 @@ auto ByteStreamUtils::ReadRequest::FromString( auto const parts = ::SplitRequest(request); if (parts.size() != kReadRequestPartsCount or - parts.at(kBlobsIndex).compare(ByteStreamUtils::kBlobs) != 0) { + parts[kBlobsIndex].compare(ByteStreamUtils::kBlobs) != 0) { return std::nullopt; } ReadRequest result; - result.instance_name_ = std::string(parts.at(kInstanceNameIndex)); - result.hash_ = std::string(parts.at(kHashIndex)); + result.instance_name_ = std::string(parts[kInstanceNameIndex]); + result.hash_ = std::string(parts[kHashIndex]); try { - result.size_ = std::stoi(std::string(parts.at(kSizeIndex))); + result.size_ = std::stoi(std::string(parts[kSizeIndex])); } catch (...) { return std::nullopt; } @@ -126,17 +126,17 @@ auto ByteStreamUtils::WriteRequest::FromString( auto const parts = ::SplitRequest(request); if (parts.size() != kWriteRequestPartsCount or - parts.at(kUploadsIndex).compare(ByteStreamUtils::kUploads) != 0 or - parts.at(kBlobsIndex).compare(ByteStreamUtils::kBlobs) != 0) { + parts[kUploadsIndex].compare(ByteStreamUtils::kUploads) != 0 or + parts[kBlobsIndex].compare(ByteStreamUtils::kBlobs) != 0) { return std::nullopt; } WriteRequest result; - result.instance_name_ = std::string(parts.at(kInstanceNameIndex)); - result.uuid_ = std::string(parts.at(kUUIDIndex)); - result.hash_ = std::string(parts.at(kHashIndex)); + result.instance_name_ = std::string(parts[kInstanceNameIndex]); + result.uuid_ = std::string(parts[kUUIDIndex]); + result.hash_ = std::string(parts[kHashIndex]); try { - result.size_ = std::stoul(std::string(parts.at(kSizeIndex))); + result.size_ = std::stoul(std::string(parts[kSizeIndex])); } catch (...) { return std::nullopt; } |