diff options
author | Charles Zablit <c_zablit@apple.com> | 2025-04-30 12:44:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-30 11:44:19 +0100 |
commit | b3d130279f5c59a82d48d4647bef626ac4e202cf (patch) | |
tree | 0da0af37fec618f40d3b0b5a7a593d554308fdd8 /lldb/source/API | |
parent | 92195f6fc873cd27a5aa0852252dfe44ccdc6ea0 (diff) | |
download | llvm-b3d130279f5c59a82d48d4647bef626ac4e202cf.zip llvm-b3d130279f5c59a82d48d4647bef626ac4e202cf.tar.gz llvm-b3d130279f5c59a82d48d4647bef626ac4e202cf.tar.bz2 |
[lldb] Upgrade `GetIndexOfChildWithName` to use `llvm::Expected` (#136693)
This patch replaces the use of `UINT32_MAX` as the error return value of
`GetIndexOfChildWithName` with `llvm::Expected`.
# Tasks to do in another PR
1. Replace `CalculateNumChildrenIgnoringErrors` with
`CalculateNumChildren`. See [this
comment](https://github.com/llvm/llvm-project/pull/136693#discussion_r2056319358).
2. Update `lldb_private::formatters::ExtractIndexFromString` to use
`llvm::Expected`. See [this
comment](https://github.com/llvm/llvm-project/pull/136693#discussion_r2054217536).
3. Create a new class which carries both user and internal errors. See
[this
comment](https://github.com/llvm/llvm-project/pull/136693#discussion_r2056439608).
Diffstat (limited to 'lldb/source/API')
-rw-r--r-- | lldb/source/API/SBValue.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lldb/source/API/SBValue.cpp b/lldb/source/API/SBValue.cpp index 6b91120..e5cdc8f 100644 --- a/lldb/source/API/SBValue.cpp +++ b/lldb/source/API/SBValue.cpp @@ -704,13 +704,15 @@ SBValue SBValue::GetChildAtIndex(uint32_t idx, uint32_t SBValue::GetIndexOfChildWithName(const char *name) { LLDB_INSTRUMENT_VA(this, name); - uint32_t idx = UINT32_MAX; ValueLocker locker; lldb::ValueObjectSP value_sp(GetSP(locker)); if (value_sp) { - idx = value_sp->GetIndexOfChildWithName(name); + if (auto idx_or_err = value_sp->GetIndexOfChildWithName(name)) + return *idx_or_err; + else + llvm::consumeError(idx_or_err.takeError()); } - return idx; + return UINT32_MAX; } SBValue SBValue::GetChildMemberWithName(const char *name) { |