aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
diff options
context:
space:
mode:
authorAdrian Prantl <adrian-prantl@users.noreply.github.com>2024-03-08 10:39:34 -0800
committerGitHub <noreply@github.com>2024-03-08 10:39:34 -0800
commit99118c809367d518ffe4de60c16da953744b68b9 (patch)
treef2ddb99f41bea20094075be71533e3d25f3775ff /lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
parent839a8fecb4c5dfe1b4484d5fc942a9490867c47a (diff)
downloadllvm-99118c809367d518ffe4de60c16da953744b68b9.zip
llvm-99118c809367d518ffe4de60c16da953744b68b9.tar.gz
llvm-99118c809367d518ffe4de60c16da953744b68b9.tar.bz2
Change GetNumChildren()/CalculateNumChildren() methods return llvm::Expected (#84219)
Change GetNumChildren()/CalculateNumChildren() methods return llvm::Expected This is an NFC change that does not yet add any error handling or change any code to return any errors. This is the second big change in the patch series started with https://github.com/llvm/llvm-project/pull/83501 A follow-up PR will wire up error handling.
Diffstat (limited to 'lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp')
-rw-r--r--lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
index 6d24eb0..ec5b320 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
@@ -177,7 +177,7 @@ public:
~LibcxxStdMapSyntheticFrontEnd() override = default;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -209,8 +209,8 @@ lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd::
Update();
}
-uint32_t lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd::
- CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::
+ LibcxxStdMapSyntheticFrontEnd::CalculateNumChildren() {
if (m_count != UINT32_MAX)
return m_count;
@@ -311,13 +311,13 @@ lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd::GetChildAtIndex(
uint32_t idx) {
static ConstString g_cc_("__cc_"), g_cc("__cc");
static ConstString g_nc("__nc");
-
- if (idx >= CalculateNumChildren())
+ uint32_t num_children = CalculateNumChildrenIgnoringErrors();
+ if (idx >= num_children)
return lldb::ValueObjectSP();
if (m_tree == nullptr || m_root_node == nullptr)
return lldb::ValueObjectSP();
- MapIterator iterator(m_root_node, CalculateNumChildren());
+ MapIterator iterator(m_root_node, num_children);
const bool need_to_skip = (idx > 0);
size_t actual_advancde = idx;
@@ -382,7 +382,7 @@ lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd::GetChildAtIndex(
name.Printf("[%" PRIu64 "]", (uint64_t)idx);
auto potential_child_sp = iterated_sp->Clone(ConstString(name.GetString()));
if (potential_child_sp) {
- switch (potential_child_sp->GetNumChildren()) {
+ switch (potential_child_sp->GetNumChildrenIgnoringErrors()) {
case 1: {
auto child0_sp = potential_child_sp->GetChildAtIndex(0);
if (child0_sp &&