[Lldb-commits] [PATCH] D154534: [lldb][NFCI] Minor cleanups to StructuredData::GetObjectForDotSeparatedPath
Alex Langford via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Wed Jul 5 15:12:46 PDT 2023
bulbazord updated this revision to Diff 537523.
bulbazord added a comment.
Address feedback from @mib
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D154534/new/
https://reviews.llvm.org/D154534
Files:
lldb/source/Utility/StructuredData.cpp
Index: lldb/source/Utility/StructuredData.cpp
===================================================================
--- lldb/source/Utility/StructuredData.cpp
+++ lldb/source/Utility/StructuredData.cpp
@@ -104,36 +104,34 @@
StructuredData::ObjectSP
StructuredData::Object::GetObjectForDotSeparatedPath(llvm::StringRef path) {
- if (this->GetType() == lldb::eStructuredDataTypeDictionary) {
+ if (GetType() == lldb::eStructuredDataTypeDictionary) {
std::pair<llvm::StringRef, llvm::StringRef> match = path.split('.');
- std::string key = match.first.str();
- ObjectSP value = this->GetAsDictionary()->GetValueForKey(key);
- if (value.get()) {
- // Do we have additional words to descend? If not, return the value
- // we're at right now.
- if (match.second.empty()) {
- return value;
- } else {
- return value->GetObjectForDotSeparatedPath(match.second);
- }
- }
- return ObjectSP();
+ llvm::StringRef key = match.first;
+ ObjectSP value = GetAsDictionary()->GetValueForKey(key);
+ if (!value)
+ return {};
+
+ // Do we have additional words to descend? If not, return the value
+ // we're at right now.
+ if (match.second.empty())
+ return value;
+
+ return value->GetObjectForDotSeparatedPath(match.second);
}
- if (this->GetType() == lldb::eStructuredDataTypeArray) {
+ if (GetType() == lldb::eStructuredDataTypeArray) {
std::pair<llvm::StringRef, llvm::StringRef> match = path.split('[');
- if (match.second.empty()) {
- return this->shared_from_this();
- }
- errno = 0;
- uint64_t val = strtoul(match.second.str().c_str(), nullptr, 10);
- if (errno == 0) {
- return this->GetAsArray()->GetItemAtIndex(val);
- }
- return ObjectSP();
+ if (match.second.empty())
+ return shared_from_this();
+
+ uint64_t val = 0;
+ if (!llvm::to_integer(match.second, val, /* Base = */ 10))
+ return {};
+
+ return GetAsArray()->GetItemAtIndex(val);
}
- return this->shared_from_this();
+ return shared_from_this();
}
void StructuredData::Object::DumpToStdout(bool pretty_print) const {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D154534.537523.patch
Type: text/x-patch
Size: 2144 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20230705/f1561025/attachment.bin>
More information about the lldb-commits
mailing list