[Lldb-commits] [lldb] Change GetNumChildren()/CalculateNumChildren() methods return llvm::Expected (PR #84219)
Adrian Prantl via lldb-commits
lldb-commits at lists.llvm.org
Wed Mar 6 17:21:41 PST 2024
https://github.com/adrian-prantl updated https://github.com/llvm/llvm-project/pull/84219
>From 44e21455e042a674f12f872be24ca9b7bb7d6dec Mon Sep 17 00:00:00 2001
From: Adrian Prantl <aprantl at apple.com>
Date: Thu, 29 Feb 2024 15:06:28 -0800
Subject: [PATCH 1/5] Change the return type of
ValueObject::CalculateNumChildren to uint32_t.
In the end this value comes from TypeSystem::GetNumChildren which
returns a uint32_t, so ValueObject should be consistent with that.
---
lldb/include/lldb/Core/ValueObject.h | 2 +-
lldb/include/lldb/Core/ValueObjectCast.h | 2 +-
lldb/include/lldb/Core/ValueObjectChild.h | 2 +-
lldb/include/lldb/Core/ValueObjectConstResult.h | 2 +-
lldb/include/lldb/Core/ValueObjectDynamicValue.h | 2 +-
lldb/include/lldb/Core/ValueObjectMemory.h | 2 +-
lldb/include/lldb/Core/ValueObjectRegister.h | 4 ++--
lldb/include/lldb/Core/ValueObjectSyntheticFilter.h | 2 +-
lldb/include/lldb/Core/ValueObjectVTable.h | 2 +-
lldb/include/lldb/Core/ValueObjectVariable.h | 2 +-
lldb/include/lldb/Target/StackFrameRecognizer.h | 2 +-
lldb/source/Core/ValueObjectCast.cpp | 2 +-
lldb/source/Core/ValueObjectChild.cpp | 2 +-
lldb/source/Core/ValueObjectConstResult.cpp | 2 +-
lldb/source/Core/ValueObjectDynamicValue.cpp | 2 +-
lldb/source/Core/ValueObjectMemory.cpp | 2 +-
lldb/source/Core/ValueObjectRegister.cpp | 4 ++--
lldb/source/Core/ValueObjectSyntheticFilter.cpp | 2 +-
lldb/source/Core/ValueObjectVTable.cpp | 4 ++--
lldb/source/Core/ValueObjectVariable.cpp | 2 +-
20 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/lldb/include/lldb/Core/ValueObject.h b/lldb/include/lldb/Core/ValueObject.h
index 4c0b0b2dae6cd4..05dd64f5634fda 100644
--- a/lldb/include/lldb/Core/ValueObject.h
+++ b/lldb/include/lldb/Core/ValueObject.h
@@ -958,7 +958,7 @@ class ValueObject {
int32_t synthetic_index);
/// Should only be called by ValueObject::GetNumChildren().
- virtual size_t CalculateNumChildren(uint32_t max = UINT32_MAX) = 0;
+ virtual uint32_t CalculateNumChildren(uint32_t max = UINT32_MAX) = 0;
void SetNumChildren(size_t num_children);
diff --git a/lldb/include/lldb/Core/ValueObjectCast.h b/lldb/include/lldb/Core/ValueObjectCast.h
index fe053c12d9c343..51c647680d5227 100644
--- a/lldb/include/lldb/Core/ValueObjectCast.h
+++ b/lldb/include/lldb/Core/ValueObjectCast.h
@@ -33,7 +33,7 @@ class ValueObjectCast : public ValueObject {
std::optional<uint64_t> GetByteSize() override;
- size_t CalculateNumChildren(uint32_t max) override;
+ uint32_t CalculateNumChildren(uint32_t max) override;
lldb::ValueType GetValueType() const override;
diff --git a/lldb/include/lldb/Core/ValueObjectChild.h b/lldb/include/lldb/Core/ValueObjectChild.h
index 46b14e6840f0dc..47a13be08bb83b 100644
--- a/lldb/include/lldb/Core/ValueObjectChild.h
+++ b/lldb/include/lldb/Core/ValueObjectChild.h
@@ -39,7 +39,7 @@ class ValueObjectChild : public ValueObject {
lldb::ValueType GetValueType() const override;
- size_t CalculateNumChildren(uint32_t max) override;
+ uint32_t CalculateNumChildren(uint32_t max) override;
ConstString GetTypeName() override;
diff --git a/lldb/include/lldb/Core/ValueObjectConstResult.h b/lldb/include/lldb/Core/ValueObjectConstResult.h
index d61df859bebce4..9f1246cf2a7874 100644
--- a/lldb/include/lldb/Core/ValueObjectConstResult.h
+++ b/lldb/include/lldb/Core/ValueObjectConstResult.h
@@ -67,7 +67,7 @@ class ValueObjectConstResult : public ValueObject {
lldb::ValueType GetValueType() const override;
- size_t CalculateNumChildren(uint32_t max) override;
+ uint32_t CalculateNumChildren(uint32_t max) override;
ConstString GetTypeName() override;
diff --git a/lldb/include/lldb/Core/ValueObjectDynamicValue.h b/lldb/include/lldb/Core/ValueObjectDynamicValue.h
index 2758b4e5bb564d..21a9b409fd5bd7 100644
--- a/lldb/include/lldb/Core/ValueObjectDynamicValue.h
+++ b/lldb/include/lldb/Core/ValueObjectDynamicValue.h
@@ -43,7 +43,7 @@ class ValueObjectDynamicValue : public ValueObject {
ConstString GetDisplayTypeName() override;
- size_t CalculateNumChildren(uint32_t max) override;
+ uint32_t CalculateNumChildren(uint32_t max) override;
lldb::ValueType GetValueType() const override;
diff --git a/lldb/include/lldb/Core/ValueObjectMemory.h b/lldb/include/lldb/Core/ValueObjectMemory.h
index 3c01df388d2e6d..a74b325546b03c 100644
--- a/lldb/include/lldb/Core/ValueObjectMemory.h
+++ b/lldb/include/lldb/Core/ValueObjectMemory.h
@@ -47,7 +47,7 @@ class ValueObjectMemory : public ValueObject {
ConstString GetDisplayTypeName() override;
- size_t CalculateNumChildren(uint32_t max) override;
+ uint32_t CalculateNumChildren(uint32_t max) override;
lldb::ValueType GetValueType() const override;
diff --git a/lldb/include/lldb/Core/ValueObjectRegister.h b/lldb/include/lldb/Core/ValueObjectRegister.h
index 2e47eee3d7f793..6c470c1a686503 100644
--- a/lldb/include/lldb/Core/ValueObjectRegister.h
+++ b/lldb/include/lldb/Core/ValueObjectRegister.h
@@ -47,7 +47,7 @@ class ValueObjectRegisterSet : public ValueObject {
ConstString GetQualifiedTypeName() override;
- size_t CalculateNumChildren(uint32_t max) override;
+ uint32_t CalculateNumChildren(uint32_t max) override;
ValueObject *CreateChildAtIndex(size_t idx, bool synthetic_array_member,
int32_t synthetic_index) override;
@@ -95,7 +95,7 @@ class ValueObjectRegister : public ValueObject {
ConstString GetTypeName() override;
- size_t CalculateNumChildren(uint32_t max) override;
+ uint32_t CalculateNumChildren(uint32_t max) override;
bool SetValueFromCString(const char *value_str, Status &error) override;
diff --git a/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h b/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h
index 67596232eafd1e..57794072ff9229 100644
--- a/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h
+++ b/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h
@@ -47,7 +47,7 @@ class ValueObjectSynthetic : public ValueObject {
bool MightHaveChildren() override;
- size_t CalculateNumChildren(uint32_t max) override;
+ uint32_t CalculateNumChildren(uint32_t max) override;
lldb::ValueType GetValueType() const override;
diff --git a/lldb/include/lldb/Core/ValueObjectVTable.h b/lldb/include/lldb/Core/ValueObjectVTable.h
index 217ff8d0d334ce..e7e14fc83d7892 100644
--- a/lldb/include/lldb/Core/ValueObjectVTable.h
+++ b/lldb/include/lldb/Core/ValueObjectVTable.h
@@ -64,7 +64,7 @@ class ValueObjectVTable : public ValueObject {
std::optional<uint64_t> GetByteSize() override;
- size_t CalculateNumChildren(uint32_t max) override;
+ uint32_t CalculateNumChildren(uint32_t max) override;
ValueObject *CreateChildAtIndex(size_t idx, bool synthetic_array_member,
int32_t synthetic_index) override;
diff --git a/lldb/include/lldb/Core/ValueObjectVariable.h b/lldb/include/lldb/Core/ValueObjectVariable.h
index bba28ce567b2a0..da270300df0b30 100644
--- a/lldb/include/lldb/Core/ValueObjectVariable.h
+++ b/lldb/include/lldb/Core/ValueObjectVariable.h
@@ -46,7 +46,7 @@ class ValueObjectVariable : public ValueObject {
ConstString GetDisplayTypeName() override;
- size_t CalculateNumChildren(uint32_t max) override;
+ uint32_t CalculateNumChildren(uint32_t max) override;
lldb::ValueType GetValueType() const override;
diff --git a/lldb/include/lldb/Target/StackFrameRecognizer.h b/lldb/include/lldb/Target/StackFrameRecognizer.h
index 419f0c0aac1f86..e111f4a4dc7029 100644
--- a/lldb/include/lldb/Target/StackFrameRecognizer.h
+++ b/lldb/include/lldb/Target/StackFrameRecognizer.h
@@ -164,7 +164,7 @@ class ValueObjectRecognizerSynthesizedValue : public ValueObject {
m_value = m_parent->GetValue();
return true;
}
- size_t CalculateNumChildren(uint32_t max = UINT32_MAX) override {
+ uint32_t CalculateNumChildren(uint32_t max = UINT32_MAX) override {
return m_parent->GetNumChildren(max);
}
CompilerType GetCompilerTypeImpl() override {
diff --git a/lldb/source/Core/ValueObjectCast.cpp b/lldb/source/Core/ValueObjectCast.cpp
index 0882d4b3677619..a5c555f86b1372 100644
--- a/lldb/source/Core/ValueObjectCast.cpp
+++ b/lldb/source/Core/ValueObjectCast.cpp
@@ -41,7 +41,7 @@ ValueObjectCast::~ValueObjectCast() = default;
CompilerType ValueObjectCast::GetCompilerTypeImpl() { return m_cast_type; }
-size_t ValueObjectCast::CalculateNumChildren(uint32_t max) {
+uint32_t ValueObjectCast::CalculateNumChildren(uint32_t max) {
ExecutionContext exe_ctx(GetExecutionContextRef());
auto children_count = GetCompilerType().GetNumChildren(
true, &exe_ctx);
diff --git a/lldb/source/Core/ValueObjectChild.cpp b/lldb/source/Core/ValueObjectChild.cpp
index 39067387dc9782..2e55dd7726bdd9 100644
--- a/lldb/source/Core/ValueObjectChild.cpp
+++ b/lldb/source/Core/ValueObjectChild.cpp
@@ -49,7 +49,7 @@ lldb::ValueType ValueObjectChild::GetValueType() const {
return m_parent->GetValueType();
}
-size_t ValueObjectChild::CalculateNumChildren(uint32_t max) {
+uint32_t ValueObjectChild::CalculateNumChildren(uint32_t max) {
ExecutionContext exe_ctx(GetExecutionContextRef());
auto children_count = GetCompilerType().GetNumChildren(true, &exe_ctx);
return children_count <= max ? children_count : max;
diff --git a/lldb/source/Core/ValueObjectConstResult.cpp b/lldb/source/Core/ValueObjectConstResult.cpp
index 693da1a551f8eb..5c7aa4452b70db 100644
--- a/lldb/source/Core/ValueObjectConstResult.cpp
+++ b/lldb/source/Core/ValueObjectConstResult.cpp
@@ -216,7 +216,7 @@ std::optional<uint64_t> ValueObjectConstResult::GetByteSize() {
void ValueObjectConstResult::SetByteSize(size_t size) { m_byte_size = size; }
-size_t ValueObjectConstResult::CalculateNumChildren(uint32_t max) {
+uint32_t ValueObjectConstResult::CalculateNumChildren(uint32_t max) {
ExecutionContext exe_ctx(GetExecutionContextRef());
auto children_count = GetCompilerType().GetNumChildren(true, &exe_ctx);
return children_count <= max ? children_count : max;
diff --git a/lldb/source/Core/ValueObjectDynamicValue.cpp b/lldb/source/Core/ValueObjectDynamicValue.cpp
index e6e30dce9d1e4a..4e64760371ae52 100644
--- a/lldb/source/Core/ValueObjectDynamicValue.cpp
+++ b/lldb/source/Core/ValueObjectDynamicValue.cpp
@@ -85,7 +85,7 @@ ConstString ValueObjectDynamicValue::GetDisplayTypeName() {
return m_parent->GetDisplayTypeName();
}
-size_t ValueObjectDynamicValue::CalculateNumChildren(uint32_t max) {
+uint32_t ValueObjectDynamicValue::CalculateNumChildren(uint32_t max) {
const bool success = UpdateValueIfNeeded(false);
if (success && m_dynamic_type_info.HasType()) {
ExecutionContext exe_ctx(GetExecutionContextRef());
diff --git a/lldb/source/Core/ValueObjectMemory.cpp b/lldb/source/Core/ValueObjectMemory.cpp
index 3f125a7bee8c77..7f68236c7884ec 100644
--- a/lldb/source/Core/ValueObjectMemory.cpp
+++ b/lldb/source/Core/ValueObjectMemory.cpp
@@ -126,7 +126,7 @@ ConstString ValueObjectMemory::GetDisplayTypeName() {
return m_compiler_type.GetDisplayTypeName();
}
-size_t ValueObjectMemory::CalculateNumChildren(uint32_t max) {
+uint32_t ValueObjectMemory::CalculateNumChildren(uint32_t max) {
if (m_type_sp) {
auto child_count = m_type_sp->GetNumChildren(true);
return child_count <= max ? child_count : max;
diff --git a/lldb/source/Core/ValueObjectRegister.cpp b/lldb/source/Core/ValueObjectRegister.cpp
index c2b84c11347359..d4c144cc7edb9a 100644
--- a/lldb/source/Core/ValueObjectRegister.cpp
+++ b/lldb/source/Core/ValueObjectRegister.cpp
@@ -74,7 +74,7 @@ ConstString ValueObjectRegisterSet::GetQualifiedTypeName() {
return ConstString();
}
-size_t ValueObjectRegisterSet::CalculateNumChildren(uint32_t max) {
+uint32_t ValueObjectRegisterSet::CalculateNumChildren(uint32_t max) {
const RegisterSet *reg_set = m_reg_ctx_sp->GetRegisterSet(m_reg_set_idx);
if (reg_set) {
auto reg_count = reg_set->num_registers;
@@ -220,7 +220,7 @@ ConstString ValueObjectRegister::GetTypeName() {
return m_type_name;
}
-size_t ValueObjectRegister::CalculateNumChildren(uint32_t max) {
+uint32_t ValueObjectRegister::CalculateNumChildren(uint32_t max) {
ExecutionContext exe_ctx(GetExecutionContextRef());
auto children_count = GetCompilerType().GetNumChildren(true, &exe_ctx);
return children_count <= max ? children_count : max;
diff --git a/lldb/source/Core/ValueObjectSyntheticFilter.cpp b/lldb/source/Core/ValueObjectSyntheticFilter.cpp
index e8b4b02d11a0bb..ae358fba4bd815 100644
--- a/lldb/source/Core/ValueObjectSyntheticFilter.cpp
+++ b/lldb/source/Core/ValueObjectSyntheticFilter.cpp
@@ -84,7 +84,7 @@ ConstString ValueObjectSynthetic::GetDisplayTypeName() {
return m_parent->GetDisplayTypeName();
}
-size_t ValueObjectSynthetic::CalculateNumChildren(uint32_t max) {
+uint32_t ValueObjectSynthetic::CalculateNumChildren(uint32_t max) {
Log *log = GetLog(LLDBLog::DataFormatters);
UpdateValueIfNeeded();
diff --git a/lldb/source/Core/ValueObjectVTable.cpp b/lldb/source/Core/ValueObjectVTable.cpp
index 177ae4167a1d45..4d1cbb8d2f6fc2 100644
--- a/lldb/source/Core/ValueObjectVTable.cpp
+++ b/lldb/source/Core/ValueObjectVTable.cpp
@@ -33,7 +33,7 @@ class ValueObjectVTableChild : public ValueObject {
std::optional<uint64_t> GetByteSize() override { return m_addr_size; };
- size_t CalculateNumChildren(uint32_t max) override { return 0; };
+ uint32_t CalculateNumChildren(uint32_t max) override { return 0; };
ValueType GetValueType() const override { return eValueTypeVTableEntry; };
@@ -159,7 +159,7 @@ std::optional<uint64_t> ValueObjectVTable::GetByteSize() {
return std::nullopt;
}
-size_t ValueObjectVTable::CalculateNumChildren(uint32_t max) {
+uint32_t ValueObjectVTable::CalculateNumChildren(uint32_t max) {
if (UpdateValueIfNeeded(false))
return m_num_vtable_entries <= max ? m_num_vtable_entries : max;
return 0;
diff --git a/lldb/source/Core/ValueObjectVariable.cpp b/lldb/source/Core/ValueObjectVariable.cpp
index 9f8df847f28a8e..dc62bb6358dc97 100644
--- a/lldb/source/Core/ValueObjectVariable.cpp
+++ b/lldb/source/Core/ValueObjectVariable.cpp
@@ -94,7 +94,7 @@ ConstString ValueObjectVariable::GetQualifiedTypeName() {
return ConstString();
}
-size_t ValueObjectVariable::CalculateNumChildren(uint32_t max) {
+uint32_t ValueObjectVariable::CalculateNumChildren(uint32_t max) {
CompilerType type(GetCompilerType());
if (!type.IsValid())
>From 242da8f612a4d7ce4f58d4e61be05dff711e469f Mon Sep 17 00:00:00 2001
From: Adrian Prantl <aprantl at apple.com>
Date: Thu, 29 Feb 2024 15:35:35 -0800
Subject: [PATCH 2/5] Change the return type of
SyntheticFrontend::CalculateNumChildren to int32_t
This way it is consistent with ValueObject and TypeSystem.
---
.../lldb/DataFormatters/TypeSynthetic.h | 12 +++++-----
.../lldb/DataFormatters/VectorIterator.h | 2 +-
.../Core/ValueObjectSyntheticFilter.cpp | 2 +-
lldb/source/DataFormatters/TypeSynthetic.cpp | 4 ++--
lldb/source/DataFormatters/VectorType.cpp | 2 +-
.../Language/CPlusPlus/BlockPointer.cpp | 2 +-
.../Plugins/Language/CPlusPlus/Coroutines.cpp | 2 +-
.../Plugins/Language/CPlusPlus/Coroutines.h | 2 +-
.../Language/CPlusPlus/GenericBitset.cpp | 2 +-
.../Language/CPlusPlus/GenericOptional.cpp | 2 +-
.../Plugins/Language/CPlusPlus/LibCxx.cpp | 8 +++----
.../Plugins/Language/CPlusPlus/LibCxx.h | 8 +++----
.../Language/CPlusPlus/LibCxxAtomic.cpp | 4 ++--
.../CPlusPlus/LibCxxInitializerList.cpp | 4 ++--
.../Plugins/Language/CPlusPlus/LibCxxList.cpp | 8 +++----
.../Plugins/Language/CPlusPlus/LibCxxMap.cpp | 4 ++--
.../Language/CPlusPlus/LibCxxQueue.cpp | 2 +-
.../CPlusPlus/LibCxxRangesRefView.cpp | 2 +-
.../Plugins/Language/CPlusPlus/LibCxxSpan.cpp | 4 ++--
.../Language/CPlusPlus/LibCxxTuple.cpp | 2 +-
.../Language/CPlusPlus/LibCxxUnorderedMap.cpp | 4 ++--
.../Language/CPlusPlus/LibCxxValarray.cpp | 4 ++--
.../Language/CPlusPlus/LibCxxVariant.cpp | 2 +-
.../Language/CPlusPlus/LibCxxVector.cpp | 8 +++----
.../Plugins/Language/CPlusPlus/LibStdcpp.cpp | 10 ++++----
.../Language/CPlusPlus/LibStdcppTuple.cpp | 4 ++--
.../CPlusPlus/LibStdcppUniquePointer.cpp | 4 ++--
lldb/source/Plugins/Language/ObjC/Cocoa.cpp | 2 +-
lldb/source/Plugins/Language/ObjC/NSArray.cpp | 18 +++++++-------
.../Plugins/Language/ObjC/NSDictionary.cpp | 24 +++++++++----------
lldb/source/Plugins/Language/ObjC/NSError.cpp | 2 +-
.../Plugins/Language/ObjC/NSException.cpp | 2 +-
.../Plugins/Language/ObjC/NSIndexPath.cpp | 2 +-
lldb/source/Plugins/Language/ObjC/NSSet.cpp | 14 +++++------
34 files changed, 89 insertions(+), 89 deletions(-)
diff --git a/lldb/include/lldb/DataFormatters/TypeSynthetic.h b/lldb/include/lldb/DataFormatters/TypeSynthetic.h
index 23cc054b399a67..7bb011c1579449 100644
--- a/lldb/include/lldb/DataFormatters/TypeSynthetic.h
+++ b/lldb/include/lldb/DataFormatters/TypeSynthetic.h
@@ -38,9 +38,9 @@ class SyntheticChildrenFrontEnd {
virtual ~SyntheticChildrenFrontEnd() = default;
- virtual size_t CalculateNumChildren() = 0;
+ virtual uint32_t CalculateNumChildren() = 0;
- virtual size_t CalculateNumChildren(uint32_t max) {
+ virtual uint32_t CalculateNumChildren(uint32_t max) {
auto count = CalculateNumChildren();
return count <= max ? count : max;
}
@@ -109,7 +109,7 @@ class SyntheticValueProviderFrontEnd : public SyntheticChildrenFrontEnd {
~SyntheticValueProviderFrontEnd() override = default;
- size_t CalculateNumChildren() override { return 0; }
+ uint32_t CalculateNumChildren() override { return 0; }
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override { return nullptr; }
@@ -322,7 +322,7 @@ class TypeFilterImpl : public SyntheticChildren {
~FrontEnd() override = default;
- size_t CalculateNumChildren() override { return filter->GetCount(); }
+ uint32_t CalculateNumChildren() override { return filter->GetCount(); }
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override {
if (idx >= filter->GetCount())
@@ -426,9 +426,9 @@ class ScriptedSyntheticChildren : public SyntheticChildren {
bool IsValid();
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
- size_t CalculateNumChildren(uint32_t max) override;
+ uint32_t CalculateNumChildren(uint32_t max) override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
diff --git a/lldb/include/lldb/DataFormatters/VectorIterator.h b/lldb/include/lldb/DataFormatters/VectorIterator.h
index 5f774bb72c3a3a..88500b0bfdd400 100644
--- a/lldb/include/lldb/DataFormatters/VectorIterator.h
+++ b/lldb/include/lldb/DataFormatters/VectorIterator.h
@@ -24,7 +24,7 @@ class VectorIteratorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
VectorIteratorSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp,
llvm::ArrayRef<ConstString> item_names);
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
diff --git a/lldb/source/Core/ValueObjectSyntheticFilter.cpp b/lldb/source/Core/ValueObjectSyntheticFilter.cpp
index ae358fba4bd815..b03bd9a80e506e 100644
--- a/lldb/source/Core/ValueObjectSyntheticFilter.cpp
+++ b/lldb/source/Core/ValueObjectSyntheticFilter.cpp
@@ -31,7 +31,7 @@ class DummySyntheticFrontEnd : public SyntheticChildrenFrontEnd {
DummySyntheticFrontEnd(ValueObject &backend)
: SyntheticChildrenFrontEnd(backend) {}
- size_t CalculateNumChildren() override { return m_backend.GetNumChildren(); }
+ uint32_t CalculateNumChildren() override { return m_backend.GetNumChildren(); }
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override {
return m_backend.GetChildAtIndex(idx);
diff --git a/lldb/source/DataFormatters/TypeSynthetic.cpp b/lldb/source/DataFormatters/TypeSynthetic.cpp
index 8a6f132a39577a..a05fbe9a73c263 100644
--- a/lldb/source/DataFormatters/TypeSynthetic.cpp
+++ b/lldb/source/DataFormatters/TypeSynthetic.cpp
@@ -178,13 +178,13 @@ bool ScriptedSyntheticChildren::FrontEnd::IsValid() {
return (m_wrapper_sp && m_wrapper_sp->IsValid() && m_interpreter);
}
-size_t ScriptedSyntheticChildren::FrontEnd::CalculateNumChildren() {
+uint32_t ScriptedSyntheticChildren::FrontEnd::CalculateNumChildren() {
if (!m_wrapper_sp || m_interpreter == nullptr)
return 0;
return m_interpreter->CalculateNumChildren(m_wrapper_sp, UINT32_MAX);
}
-size_t ScriptedSyntheticChildren::FrontEnd::CalculateNumChildren(uint32_t max) {
+uint32_t ScriptedSyntheticChildren::FrontEnd::CalculateNumChildren(uint32_t max) {
if (!m_wrapper_sp || m_interpreter == nullptr)
return 0;
return m_interpreter->CalculateNumChildren(m_wrapper_sp, max);
diff --git a/lldb/source/DataFormatters/VectorType.cpp b/lldb/source/DataFormatters/VectorType.cpp
index c94ca68319ee2c..6f1f0e5b058fdf 100644
--- a/lldb/source/DataFormatters/VectorType.cpp
+++ b/lldb/source/DataFormatters/VectorType.cpp
@@ -224,7 +224,7 @@ class VectorTypeSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~VectorTypeSyntheticFrontEnd() override = default;
- size_t CalculateNumChildren() override { return m_num_children; }
+ uint32_t CalculateNumChildren() override { return m_num_children; }
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override {
if (idx >= CalculateNumChildren())
diff --git a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp
index 2e43aa3fa1d8bf..f8e47efa7d9164 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp
@@ -74,7 +74,7 @@ class BlockPointerSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~BlockPointerSyntheticFrontEnd() override = default;
- size_t CalculateNumChildren() override {
+ uint32_t CalculateNumChildren() override {
const bool omit_empty_base_classes = false;
return m_block_struct_type.GetNumChildren(omit_empty_base_classes, nullptr);
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp
index 742017438bcf4a..ea1218350f6c77 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp
@@ -104,7 +104,7 @@ lldb_private::formatters::StdlibCoroutineHandleSyntheticFrontEnd::
lldb_private::formatters::StdlibCoroutineHandleSyntheticFrontEnd::
~StdlibCoroutineHandleSyntheticFrontEnd() = default;
-size_t lldb_private::formatters::StdlibCoroutineHandleSyntheticFrontEnd::
+uint32_t lldb_private::formatters::StdlibCoroutineHandleSyntheticFrontEnd::
CalculateNumChildren() {
if (!m_resume_ptr_sp || !m_destroy_ptr_sp)
return 0;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.h b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.h
index d38c7ecefa6e13..8ec2c14d2e9e96 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.h
+++ b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.h
@@ -34,7 +34,7 @@ class StdlibCoroutineHandleSyntheticFrontEnd
~StdlibCoroutineHandleSyntheticFrontEnd() override;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp
index ac316638523584..c8fc3af4a9d4a2 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp
@@ -34,7 +34,7 @@ class GenericBitsetFrontEnd : public SyntheticChildrenFrontEnd {
bool MightHaveChildren() override { return true; }
lldb::ChildCacheState Update() override;
- size_t CalculateNumChildren() override { return m_elements.size(); }
+ uint32_t CalculateNumChildren() override { return m_elements.size(); }
ValueObjectSP GetChildAtIndex(size_t idx) override;
private:
diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp
index 57331eaa986890..34ae1a24892136 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp
@@ -41,7 +41,7 @@ class GenericOptionalFrontend : public SyntheticChildrenFrontEnd {
}
bool MightHaveChildren() override { return true; }
- size_t CalculateNumChildren() override { return m_has_value ? 1U : 0U; }
+ uint32_t CalculateNumChildren() override { return m_has_value ? 1U : 0U; }
ValueObjectSP GetChildAtIndex(size_t idx) override;
lldb::ChildCacheState Update() override;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
index 7893aa7cc1f9df..710b235ce957f2 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
@@ -351,7 +351,7 @@ lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd::Update() {
return lldb::ChildCacheState::eRefetch;
}
-size_t lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd::
+uint32_t lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd::
CalculateNumChildren() {
return 2;
}
@@ -509,7 +509,7 @@ lldb::ChildCacheState lldb_private::formatters::
return lldb::ChildCacheState::eRefetch;
}
-size_t lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd::
+uint32_t lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd::
CalculateNumChildren() {
return 2;
}
@@ -566,7 +566,7 @@ lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd::
Update();
}
-size_t lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd::
+uint32_t lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd::
CalculateNumChildren() {
return (m_cntrl ? 1 : 0);
}
@@ -661,7 +661,7 @@ lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEndCreator(
: nullptr);
}
-size_t lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEnd::
+uint32_t lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEnd::
CalculateNumChildren() {
if (m_value_ptr_sp)
return m_deleter_sp ? 2 : 1;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h
index d823fbd76222db..af4f313a905093 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h
@@ -87,7 +87,7 @@ class LibCxxMapIteratorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
LibCxxMapIteratorSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -135,7 +135,7 @@ class LibCxxUnorderedMapIteratorSyntheticFrontEnd
~LibCxxUnorderedMapIteratorSyntheticFrontEnd() override = default;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -166,7 +166,7 @@ class LibcxxSharedPtrSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
LibcxxSharedPtrSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -186,7 +186,7 @@ class LibcxxUniquePtrSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
LibcxxUniquePtrSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp
index c81b1e8012f6a9..484d756a300e30 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp
@@ -90,7 +90,7 @@ class LibcxxStdAtomicSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~LibcxxStdAtomicSyntheticFrontEnd() override = default;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -124,7 +124,7 @@ bool lldb_private::formatters::LibcxxStdAtomicSyntheticFrontEnd::
return true;
}
-size_t lldb_private::formatters::LibcxxStdAtomicSyntheticFrontEnd::
+uint32_t lldb_private::formatters::LibcxxStdAtomicSyntheticFrontEnd::
CalculateNumChildren() {
return m_real_child ? 1 : 0;
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp
index 3c33f94f923734..ef94815b3afc6d 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp
@@ -26,7 +26,7 @@ class LibcxxInitializerListSyntheticFrontEnd
~LibcxxInitializerListSyntheticFrontEnd() override;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -59,7 +59,7 @@ lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd::
// delete m_start;
}
-size_t lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd::
+uint32_t lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd::
CalculateNumChildren() {
m_num_elements = 0;
ValueObjectSP size_sp(m_backend.GetChildMemberWithName("__size_"));
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp
index e28ef818b10faf..d05a64b1eba569 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp
@@ -136,7 +136,7 @@ class ForwardListFrontEnd : public AbstractListFrontEnd {
public:
ForwardListFrontEnd(ValueObject &valobj);
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
ValueObjectSP GetChildAtIndex(size_t idx) override;
lldb::ChildCacheState Update() override;
};
@@ -147,7 +147,7 @@ class ListFrontEnd : public AbstractListFrontEnd {
~ListFrontEnd() override = default;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -240,7 +240,7 @@ ForwardListFrontEnd::ForwardListFrontEnd(ValueObject &valobj)
Update();
}
-size_t ForwardListFrontEnd::CalculateNumChildren() {
+uint32_t ForwardListFrontEnd::CalculateNumChildren() {
if (m_count != UINT32_MAX)
return m_count;
@@ -308,7 +308,7 @@ ListFrontEnd::ListFrontEnd(lldb::ValueObjectSP valobj_sp)
Update();
}
-size_t ListFrontEnd::CalculateNumChildren() {
+uint32_t ListFrontEnd::CalculateNumChildren() {
if (m_count != UINT32_MAX)
return m_count;
if (!m_head || !m_tail || m_node_address == 0)
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
index d208acfc9da47e..28a9a26c9d2db2 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
@@ -177,7 +177,7 @@ class LibcxxStdMapSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~LibcxxStdMapSyntheticFrontEnd() override = default;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -209,7 +209,7 @@ lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd::
Update();
}
-size_t lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd::
+uint32_t lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd::
CalculateNumChildren() {
if (m_count != UINT32_MAX)
return m_count;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp
index 83f93b16fc9a2d..beab453b788adf 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp
@@ -28,7 +28,7 @@ class QueueFrontEnd : public SyntheticChildrenFrontEnd {
bool MightHaveChildren() override { return true; }
lldb::ChildCacheState Update() override;
- size_t CalculateNumChildren() override {
+ uint32_t CalculateNumChildren() override {
return m_container_sp ? m_container_sp->GetNumChildren() : 0;
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxRangesRefView.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxRangesRefView.cpp
index c032d67c66cb47..cda6c5d79c3190 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxRangesRefView.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxRangesRefView.cpp
@@ -27,7 +27,7 @@ class LibcxxStdRangesRefViewSyntheticFrontEnd
~LibcxxStdRangesRefViewSyntheticFrontEnd() override = default;
- size_t CalculateNumChildren() override {
+ uint32_t CalculateNumChildren() override {
// __range_ will be the sole child of this type
return 1;
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp
index 4ddfaef9c0ad54..5aaf1ec2d56e3d 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp
@@ -27,7 +27,7 @@ class LibcxxStdSpanSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~LibcxxStdSpanSyntheticFrontEnd() override = default;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -73,7 +73,7 @@ lldb_private::formatters::LibcxxStdSpanSyntheticFrontEnd::
Update();
}
-size_t lldb_private::formatters::LibcxxStdSpanSyntheticFrontEnd::
+uint32_t lldb_private::formatters::LibcxxStdSpanSyntheticFrontEnd::
CalculateNumChildren() {
return m_num_elements;
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp
index 546871012d2b38..5c42d8551d4fe2 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp
@@ -26,7 +26,7 @@ class TupleFrontEnd: public SyntheticChildrenFrontEnd {
bool MightHaveChildren() override { return true; }
lldb::ChildCacheState Update() override;
- size_t CalculateNumChildren() override { return m_elements.size(); }
+ uint32_t CalculateNumChildren() override { return m_elements.size(); }
ValueObjectSP GetChildAtIndex(size_t idx) override;
private:
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
index 4cac52f235a19a..0be73a9e633d9a 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
@@ -33,7 +33,7 @@ class LibcxxStdUnorderedMapSyntheticFrontEnd
~LibcxxStdUnorderedMapSyntheticFrontEnd() override = default;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -62,7 +62,7 @@ lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEnd::
Update();
}
-size_t lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEnd::
+uint32_t lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEnd::
CalculateNumChildren() {
return m_num_elements;
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp
index 7c8fd25fd9f281..eae7711c8cd9f8 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp
@@ -24,7 +24,7 @@ class LibcxxStdValarraySyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~LibcxxStdValarraySyntheticFrontEnd() override;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -63,7 +63,7 @@ lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd::
// delete m_finish;
}
-size_t lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd::
+uint32_t lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd::
CalculateNumChildren() {
if (!m_start || !m_finish)
return 0;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp
index ecbb7cf0ca2b46..c704e1b8335eac 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp
@@ -205,7 +205,7 @@ class VariantFrontEnd : public SyntheticChildrenFrontEnd {
bool MightHaveChildren() override { return true; }
lldb::ChildCacheState Update() override;
- size_t CalculateNumChildren() override { return m_size; }
+ uint32_t CalculateNumChildren() override { return m_size; }
ValueObjectSP GetChildAtIndex(size_t idx) override;
private:
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp
index 0c3c3f02b60c7b..62ff76b82a2a00 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp
@@ -25,7 +25,7 @@ class LibcxxStdVectorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~LibcxxStdVectorSyntheticFrontEnd() override;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -46,7 +46,7 @@ class LibcxxVectorBoolSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
LibcxxVectorBoolSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -82,7 +82,7 @@ lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd::
// delete m_finish;
}
-size_t lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd::
+uint32_t lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd::
CalculateNumChildren() {
if (!m_start || !m_finish)
return 0;
@@ -165,7 +165,7 @@ lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd::
}
}
-size_t lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd::
+uint32_t lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd::
CalculateNumChildren() {
return m_count;
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
index 411551839e1e61..b2249d23961f6d 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
@@ -43,7 +43,7 @@ class LibstdcppMapIteratorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
explicit LibstdcppMapIteratorSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -64,7 +64,7 @@ class LibStdcppSharedPtrSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
explicit LibStdcppSharedPtrSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -132,7 +132,7 @@ lldb::ChildCacheState LibstdcppMapIteratorSyntheticFrontEnd::Update() {
return lldb::ChildCacheState::eReuse;
}
-size_t LibstdcppMapIteratorSyntheticFrontEnd::CalculateNumChildren() {
+uint32_t LibstdcppMapIteratorSyntheticFrontEnd::CalculateNumChildren() {
return 2;
}
@@ -219,7 +219,7 @@ lldb::ChildCacheState VectorIteratorSyntheticFrontEnd::Update() {
return lldb::ChildCacheState::eRefetch;
}
-size_t VectorIteratorSyntheticFrontEnd::CalculateNumChildren() { return 1; }
+uint32_t VectorIteratorSyntheticFrontEnd::CalculateNumChildren() { return 1; }
lldb::ValueObjectSP
VectorIteratorSyntheticFrontEnd::GetChildAtIndex(size_t idx) {
@@ -371,7 +371,7 @@ LibStdcppSharedPtrSyntheticFrontEnd::LibStdcppSharedPtrSyntheticFrontEnd(
Update();
}
-size_t LibStdcppSharedPtrSyntheticFrontEnd::CalculateNumChildren() { return 1; }
+uint32_t LibStdcppSharedPtrSyntheticFrontEnd::CalculateNumChildren() { return 1; }
lldb::ValueObjectSP
LibStdcppSharedPtrSyntheticFrontEnd::GetChildAtIndex(size_t idx) {
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp
index 189f9561e52a1b..ba3116d01a72b8 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp
@@ -26,7 +26,7 @@ class LibStdcppTupleSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
explicit LibStdcppTupleSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -95,7 +95,7 @@ LibStdcppTupleSyntheticFrontEnd::GetChildAtIndex(size_t idx) {
return lldb::ValueObjectSP();
}
-size_t LibStdcppTupleSyntheticFrontEnd::CalculateNumChildren() {
+uint32_t LibStdcppTupleSyntheticFrontEnd::CalculateNumChildren() {
return m_members.size();
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp
index 3b0f6329d0e3ff..aca18ee694c0e2 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp
@@ -26,7 +26,7 @@ class LibStdcppUniquePtrSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
explicit LibStdcppUniquePtrSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -135,7 +135,7 @@ LibStdcppUniquePtrSyntheticFrontEnd::GetChildAtIndex(size_t idx) {
return lldb::ValueObjectSP();
}
-size_t LibStdcppUniquePtrSyntheticFrontEnd::CalculateNumChildren() {
+uint32_t LibStdcppUniquePtrSyntheticFrontEnd::CalculateNumChildren() {
if (m_del_obj)
return 2;
return 1;
diff --git a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
index 64047dc53236bf..05b324a30f2d67 100644
--- a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
+++ b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
@@ -1038,7 +1038,7 @@ class ObjCClassSyntheticChildrenFrontEnd : public SyntheticChildrenFrontEnd {
~ObjCClassSyntheticChildrenFrontEnd() override = default;
- size_t CalculateNumChildren() override { return 0; }
+ uint32_t CalculateNumChildren() override { return 0; }
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override {
return lldb::ValueObjectSP();
diff --git a/lldb/source/Plugins/Language/ObjC/NSArray.cpp b/lldb/source/Plugins/Language/ObjC/NSArray.cpp
index 09bf7a23d6097e..9ee12e50b8ace9 100644
--- a/lldb/source/Plugins/Language/ObjC/NSArray.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSArray.cpp
@@ -50,7 +50,7 @@ class NSArrayMSyntheticFrontEndBase : public SyntheticChildrenFrontEnd {
~NSArrayMSyntheticFrontEndBase() override = default;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -214,7 +214,7 @@ class GenericNSArrayISyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~GenericNSArrayISyntheticFrontEnd() override;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -302,7 +302,7 @@ class NSArray0SyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~NSArray0SyntheticFrontEnd() override = default;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -319,7 +319,7 @@ class NSArray1SyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~NSArray1SyntheticFrontEnd() override = default;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -477,8 +477,8 @@ lldb_private::formatters::
: NSArrayMSyntheticFrontEndBase(valobj_sp), m_data_32(nullptr),
m_data_64(nullptr) {}
-size_t
-lldb_private::formatters::NSArrayMSyntheticFrontEndBase::CalculateNumChildren() {
+uint32_t lldb_private::formatters::NSArrayMSyntheticFrontEndBase::
+ CalculateNumChildren() {
return GetUsedCount();
}
@@ -634,7 +634,7 @@ lldb_private::formatters::GenericNSArrayISyntheticFrontEnd<D32, D64, Inline>::
}
template <typename D32, typename D64, bool Inline>
-size_t
+uint32_t
lldb_private::formatters::GenericNSArrayISyntheticFrontEnd<D32, D64, Inline>::
CalculateNumChildren() {
return m_data_32 ? m_data_32->used : m_data_64->used;
@@ -719,7 +719,7 @@ lldb_private::formatters::NSArray0SyntheticFrontEnd::GetIndexOfChildWithName(
return UINT32_MAX;
}
-size_t
+uint32_t
lldb_private::formatters::NSArray0SyntheticFrontEnd::CalculateNumChildren() {
return 0;
}
@@ -754,7 +754,7 @@ lldb_private::formatters::NSArray1SyntheticFrontEnd::GetIndexOfChildWithName(
return UINT32_MAX;
}
-size_t
+uint32_t
lldb_private::formatters::NSArray1SyntheticFrontEnd::CalculateNumChildren() {
return 1;
}
diff --git a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
index 9c252a98de8357..3bb2e4fac02e41 100644
--- a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
@@ -103,7 +103,7 @@ class NSDictionaryISyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~NSDictionaryISyntheticFrontEnd() override;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -144,7 +144,7 @@ class NSConstantDictionarySyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
NSConstantDictionarySyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -176,7 +176,7 @@ class NSCFDictionarySyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
NSCFDictionarySyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -209,7 +209,7 @@ class NSDictionary1SyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~NSDictionary1SyntheticFrontEnd() override = default;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -230,7 +230,7 @@ class GenericNSDictionaryMSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~GenericNSDictionaryMSyntheticFrontEnd() override;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -263,7 +263,7 @@ namespace Foundation1100 {
~NSDictionaryMSyntheticFrontEnd() override;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -606,7 +606,7 @@ size_t lldb_private::formatters::NSDictionaryISyntheticFrontEnd::
return idx;
}
-size_t lldb_private::formatters::NSDictionaryISyntheticFrontEnd::
+uint32_t lldb_private::formatters::NSDictionaryISyntheticFrontEnd::
CalculateNumChildren() {
if (!m_data_32 && !m_data_64)
return 0;
@@ -744,7 +744,7 @@ size_t lldb_private::formatters::NSCFDictionarySyntheticFrontEnd::
return idx;
}
-size_t lldb_private::formatters::NSCFDictionarySyntheticFrontEnd::
+uint32_t lldb_private::formatters::NSCFDictionarySyntheticFrontEnd::
CalculateNumChildren() {
if (!m_hashtable.IsValid())
return 0;
@@ -880,7 +880,7 @@ size_t lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd::
return idx;
}
-size_t lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd::
+uint32_t lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd::
CalculateNumChildren() {
return m_size;
}
@@ -994,7 +994,7 @@ size_t lldb_private::formatters::NSDictionary1SyntheticFrontEnd::
return name == g_zero ? 0 : UINT32_MAX;
}
-size_t lldb_private::formatters::NSDictionary1SyntheticFrontEnd::
+uint32_t lldb_private::formatters::NSDictionary1SyntheticFrontEnd::
CalculateNumChildren() {
return 1;
}
@@ -1087,7 +1087,7 @@ size_t lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd<
}
template <typename D32, typename D64>
-size_t
+uint32_t
lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd<D32,D64>::CalculateNumChildren() {
if (!m_data_32 && !m_data_64)
return 0;
@@ -1250,7 +1250,7 @@ lldb_private::formatters::Foundation1100::
return idx;
}
-size_t
+uint32_t
lldb_private::formatters::Foundation1100::
NSDictionaryMSyntheticFrontEnd::CalculateNumChildren() {
if (!m_data_32 && !m_data_64)
diff --git a/lldb/source/Plugins/Language/ObjC/NSError.cpp b/lldb/source/Plugins/Language/ObjC/NSError.cpp
index ce52ae542a50cb..786d2bc51871a5 100644
--- a/lldb/source/Plugins/Language/ObjC/NSError.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSError.cpp
@@ -116,7 +116,7 @@ class NSErrorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
// no need to delete m_child_ptr - it's kept alive by the cluster manager on
// our behalf
- size_t CalculateNumChildren() override {
+ uint32_t CalculateNumChildren() override {
if (m_child_ptr)
return 1;
if (m_child_sp)
diff --git a/lldb/source/Plugins/Language/ObjC/NSException.cpp b/lldb/source/Plugins/Language/ObjC/NSException.cpp
index e8011e5d2ca0be..e47939c718010d 100644
--- a/lldb/source/Plugins/Language/ObjC/NSException.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSException.cpp
@@ -123,7 +123,7 @@ class NSExceptionSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~NSExceptionSyntheticFrontEnd() override = default;
- size_t CalculateNumChildren() override {
+ uint32_t CalculateNumChildren() override {
return 4;
}
diff --git a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
index 69e6ab1055d8c6..45c020f8d1b359 100644
--- a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
@@ -40,7 +40,7 @@ class NSIndexPathSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~NSIndexPathSyntheticFrontEnd() override = default;
- size_t CalculateNumChildren() override { return m_impl.GetNumIndexes(); }
+ uint32_t CalculateNumChildren() override { return m_impl.GetNumIndexes(); }
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override {
return m_impl.GetIndexAtIndex(idx, m_uint_star_type);
diff --git a/lldb/source/Plugins/Language/ObjC/NSSet.cpp b/lldb/source/Plugins/Language/ObjC/NSSet.cpp
index ede64852d9a879..97f19c1ac937d4 100644
--- a/lldb/source/Plugins/Language/ObjC/NSSet.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSSet.cpp
@@ -46,7 +46,7 @@ class NSSetISyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~NSSetISyntheticFrontEnd() override;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -84,7 +84,7 @@ class NSCFSetSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
NSCFSetSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -117,7 +117,7 @@ class GenericNSSetMSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~GenericNSSetMSyntheticFrontEnd() override;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -233,7 +233,7 @@ class NSSetCodeRunningSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~NSSetCodeRunningSyntheticFrontEnd() override;
- size_t CalculateNumChildren() override;
+ uint32_t CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
@@ -419,7 +419,7 @@ lldb_private::formatters::NSSetISyntheticFrontEnd::GetIndexOfChildWithName(
return idx;
}
-size_t
+uint32_t
lldb_private::formatters::NSSetISyntheticFrontEnd::CalculateNumChildren() {
if (!m_data_32 && !m_data_64)
return 0;
@@ -555,7 +555,7 @@ lldb_private::formatters::NSCFSetSyntheticFrontEnd::GetIndexOfChildWithName(
return idx;
}
-size_t
+uint32_t
lldb_private::formatters::NSCFSetSyntheticFrontEnd::CalculateNumChildren() {
if (!m_hashtable.IsValid())
return 0;
@@ -696,7 +696,7 @@ lldb_private::formatters::
}
template <typename D32, typename D64>
-size_t
+uint32_t
lldb_private::formatters::
GenericNSSetMSyntheticFrontEnd<D32, D64>::CalculateNumChildren() {
if (!m_data_32 && !m_data_64)
>From 79642bf2a0ee0c12071f1f1b8b33683c4708ae3d Mon Sep 17 00:00:00 2001
From: Adrian Prantl <aprantl at apple.com>
Date: Mon, 4 Mar 2024 17:50:47 -0800
Subject: [PATCH 3/5] Change GetChildAtIndex to take a uint32_t
---
lldb/include/lldb/Core/ValueObject.h | 4 ++--
.../lldb/Core/ValueObjectSyntheticFilter.h | 2 +-
.../lldb/DataFormatters/TypeSynthetic.h | 8 +++----
.../lldb/DataFormatters/VectorIterator.h | 2 +-
lldb/source/Core/ValueObject.cpp | 2 +-
.../Core/ValueObjectSyntheticFilter.cpp | 14 +++++------
lldb/source/DataFormatters/TypeSynthetic.cpp | 2 +-
lldb/source/DataFormatters/VectorType.cpp | 2 +-
.../Language/CPlusPlus/BlockPointer.cpp | 2 +-
.../Plugins/Language/CPlusPlus/Coroutines.cpp | 2 +-
.../Plugins/Language/CPlusPlus/Coroutines.h | 2 +-
.../Language/CPlusPlus/GenericBitset.cpp | 4 ++--
.../Language/CPlusPlus/GenericOptional.cpp | 4 ++--
.../Plugins/Language/CPlusPlus/LibCxx.cpp | 8 +++----
.../Plugins/Language/CPlusPlus/LibCxx.h | 8 +++----
.../Language/CPlusPlus/LibCxxAtomic.cpp | 4 ++--
.../CPlusPlus/LibCxxInitializerList.cpp | 4 ++--
.../Plugins/Language/CPlusPlus/LibCxxList.cpp | 8 +++----
.../Plugins/Language/CPlusPlus/LibCxxMap.cpp | 4 ++--
.../Language/CPlusPlus/LibCxxQueue.cpp | 2 +-
.../CPlusPlus/LibCxxRangesRefView.cpp | 2 +-
.../Plugins/Language/CPlusPlus/LibCxxSpan.cpp | 4 ++--
.../Language/CPlusPlus/LibCxxTuple.cpp | 4 ++--
.../Language/CPlusPlus/LibCxxUnorderedMap.cpp | 4 ++--
.../Language/CPlusPlus/LibCxxValarray.cpp | 4 ++--
.../Language/CPlusPlus/LibCxxVariant.cpp | 4 ++--
.../Language/CPlusPlus/LibCxxVector.cpp | 8 +++----
.../Plugins/Language/CPlusPlus/LibStdcpp.cpp | 10 ++++----
.../Language/CPlusPlus/LibStdcppTuple.cpp | 4 ++--
.../CPlusPlus/LibStdcppUniquePointer.cpp | 4 ++--
lldb/source/Plugins/Language/ObjC/Cocoa.cpp | 2 +-
lldb/source/Plugins/Language/ObjC/NSArray.cpp | 16 ++++++-------
.../Plugins/Language/ObjC/NSDictionary.cpp | 24 +++++++++----------
lldb/source/Plugins/Language/ObjC/NSError.cpp | 2 +-
.../Plugins/Language/ObjC/NSException.cpp | 2 +-
.../Plugins/Language/ObjC/NSIndexPath.cpp | 2 +-
lldb/source/Plugins/Language/ObjC/NSSet.cpp | 15 ++++++------
37 files changed, 100 insertions(+), 99 deletions(-)
diff --git a/lldb/include/lldb/Core/ValueObject.h b/lldb/include/lldb/Core/ValueObject.h
index 05dd64f5634fda..757ae0601c2466 100644
--- a/lldb/include/lldb/Core/ValueObject.h
+++ b/lldb/include/lldb/Core/ValueObject.h
@@ -465,7 +465,7 @@ class ValueObject {
/// Returns a unique id for this ValueObject.
lldb::user_id_t GetID() const { return m_id.GetID(); }
- virtual lldb::ValueObjectSP GetChildAtIndex(size_t idx,
+ virtual lldb::ValueObjectSP GetChildAtIndex(uint32_t idx,
bool can_create = true);
// The method always creates missing children in the path, if necessary.
@@ -791,7 +791,7 @@ class ValueObject {
return (m_children.find(idx) != m_children.end());
}
- ValueObject *GetChildAtIndex(size_t idx) {
+ ValueObject *GetChildAtIndex(uint32_t idx) {
std::lock_guard<std::recursive_mutex> guard(m_mutex);
const auto iter = m_children.find(idx);
return ((iter == m_children.end()) ? nullptr : iter->second);
diff --git a/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h b/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h
index 57794072ff9229..1e54babc94f395 100644
--- a/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h
+++ b/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h
@@ -51,7 +51,7 @@ class ValueObjectSynthetic : public ValueObject {
lldb::ValueType GetValueType() const override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx,
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx,
bool can_create = true) override;
lldb::ValueObjectSP GetChildMemberWithName(llvm::StringRef name,
diff --git a/lldb/include/lldb/DataFormatters/TypeSynthetic.h b/lldb/include/lldb/DataFormatters/TypeSynthetic.h
index 7bb011c1579449..38f3ce0fa5f011 100644
--- a/lldb/include/lldb/DataFormatters/TypeSynthetic.h
+++ b/lldb/include/lldb/DataFormatters/TypeSynthetic.h
@@ -45,7 +45,7 @@ class SyntheticChildrenFrontEnd {
return count <= max ? count : max;
}
- virtual lldb::ValueObjectSP GetChildAtIndex(size_t idx) = 0;
+ virtual lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) = 0;
virtual size_t GetIndexOfChildWithName(ConstString name) = 0;
@@ -111,7 +111,7 @@ class SyntheticValueProviderFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override { return 0; }
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override { return nullptr; }
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override { return nullptr; }
size_t GetIndexOfChildWithName(ConstString name) override {
return UINT32_MAX;
@@ -324,7 +324,7 @@ class TypeFilterImpl : public SyntheticChildren {
uint32_t CalculateNumChildren() override { return filter->GetCount(); }
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override {
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override {
if (idx >= filter->GetCount())
return lldb::ValueObjectSP();
return m_backend.GetSyntheticExpressionPathChild(
@@ -430,7 +430,7 @@ class ScriptedSyntheticChildren : public SyntheticChildren {
uint32_t CalculateNumChildren(uint32_t max) override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
diff --git a/lldb/include/lldb/DataFormatters/VectorIterator.h b/lldb/include/lldb/DataFormatters/VectorIterator.h
index 88500b0bfdd400..7711b9de95dba8 100644
--- a/lldb/include/lldb/DataFormatters/VectorIterator.h
+++ b/lldb/include/lldb/DataFormatters/VectorIterator.h
@@ -26,7 +26,7 @@ class VectorIteratorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
diff --git a/lldb/source/Core/ValueObject.cpp b/lldb/source/Core/ValueObject.cpp
index 840b100c70ddaa..dcf7ccadef8801 100644
--- a/lldb/source/Core/ValueObject.cpp
+++ b/lldb/source/Core/ValueObject.cpp
@@ -372,7 +372,7 @@ bool ValueObject::IsLogicalTrue(Status &error) {
return ret;
}
-ValueObjectSP ValueObject::GetChildAtIndex(size_t idx, bool can_create) {
+ValueObjectSP ValueObject::GetChildAtIndex(uint32_t idx, bool can_create) {
ValueObjectSP child_sp;
// We may need to update our value if we are dynamic
if (IsPossibleDynamicType())
diff --git a/lldb/source/Core/ValueObjectSyntheticFilter.cpp b/lldb/source/Core/ValueObjectSyntheticFilter.cpp
index b03bd9a80e506e..7f8a9a34cb35df 100644
--- a/lldb/source/Core/ValueObjectSyntheticFilter.cpp
+++ b/lldb/source/Core/ValueObjectSyntheticFilter.cpp
@@ -33,7 +33,7 @@ class DummySyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override { return m_backend.GetNumChildren(); }
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override {
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override {
return m_backend.GetChildAtIndex(idx);
}
@@ -236,13 +236,13 @@ bool ValueObjectSynthetic::UpdateValue() {
return true;
}
-lldb::ValueObjectSP ValueObjectSynthetic::GetChildAtIndex(size_t idx,
+lldb::ValueObjectSP ValueObjectSynthetic::GetChildAtIndex(uint32_t idx,
bool can_create) {
Log *log = GetLog(LLDBLog::DataFormatters);
LLDB_LOGF(log,
"[ValueObjectSynthetic::GetChildAtIndex] name=%s, retrieving "
- "child at index %zu",
+ "child at index %u",
GetName().AsCString(), idx);
UpdateValueIfNeeded();
@@ -261,7 +261,7 @@ lldb::ValueObjectSP ValueObjectSynthetic::GetChildAtIndex(size_t idx,
if (can_create && m_synth_filter_up != nullptr) {
LLDB_LOGF(log,
"[ValueObjectSynthetic::GetChildAtIndex] name=%s, child at "
- "index %zu not cached and will be created",
+ "index %u not cached and will be created",
GetName().AsCString(), idx);
lldb::ValueObjectSP synth_guy = m_synth_filter_up->GetChildAtIndex(idx);
@@ -269,7 +269,7 @@ lldb::ValueObjectSP ValueObjectSynthetic::GetChildAtIndex(size_t idx,
LLDB_LOGF(
log,
"[ValueObjectSynthetic::GetChildAtIndex] name=%s, child at index "
- "%zu created as %p (is "
+ "%u created as %p (is "
"synthetic: %s)",
GetName().AsCString(), idx, static_cast<void *>(synth_guy.get()),
synth_guy.get()
@@ -291,7 +291,7 @@ lldb::ValueObjectSP ValueObjectSynthetic::GetChildAtIndex(size_t idx,
} else {
LLDB_LOGF(log,
"[ValueObjectSynthetic::GetChildAtIndex] name=%s, child at "
- "index %zu not cached and cannot "
+ "index %u not cached and cannot "
"be created (can_create = %s, synth_filter = %p)",
GetName().AsCString(), idx, can_create ? "yes" : "no",
static_cast<void *>(m_synth_filter_up.get()));
@@ -301,7 +301,7 @@ lldb::ValueObjectSP ValueObjectSynthetic::GetChildAtIndex(size_t idx,
} else {
LLDB_LOGF(log,
"[ValueObjectSynthetic::GetChildAtIndex] name=%s, child at "
- "index %zu cached as %p",
+ "index %u cached as %p",
GetName().AsCString(), idx, static_cast<void *>(valobj));
return valobj->GetSP();
diff --git a/lldb/source/DataFormatters/TypeSynthetic.cpp b/lldb/source/DataFormatters/TypeSynthetic.cpp
index a05fbe9a73c263..0ae38c4d31f26b 100644
--- a/lldb/source/DataFormatters/TypeSynthetic.cpp
+++ b/lldb/source/DataFormatters/TypeSynthetic.cpp
@@ -167,7 +167,7 @@ ScriptedSyntheticChildren::FrontEnd::FrontEnd(std::string pclass,
ScriptedSyntheticChildren::FrontEnd::~FrontEnd() = default;
lldb::ValueObjectSP
-ScriptedSyntheticChildren::FrontEnd::GetChildAtIndex(size_t idx) {
+ScriptedSyntheticChildren::FrontEnd::GetChildAtIndex(uint32_t idx) {
if (!m_wrapper_sp || !m_interpreter)
return lldb::ValueObjectSP();
diff --git a/lldb/source/DataFormatters/VectorType.cpp b/lldb/source/DataFormatters/VectorType.cpp
index 6f1f0e5b058fdf..a0626a8cba7788 100644
--- a/lldb/source/DataFormatters/VectorType.cpp
+++ b/lldb/source/DataFormatters/VectorType.cpp
@@ -226,7 +226,7 @@ class VectorTypeSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override { return m_num_children; }
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override {
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override {
if (idx >= CalculateNumChildren())
return {};
std::optional<uint64_t> size = m_child_type.GetByteSize(nullptr);
diff --git a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp
index f8e47efa7d9164..ef0f67d1e9f9e7 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp
@@ -79,7 +79,7 @@ class BlockPointerSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
return m_block_struct_type.GetNumChildren(omit_empty_base_classes, nullptr);
}
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override {
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override {
if (!m_block_struct_type.IsValid()) {
return lldb::ValueObjectSP();
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp
index ea1218350f6c77..3827f9c21effab 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp
@@ -113,7 +113,7 @@ uint32_t lldb_private::formatters::StdlibCoroutineHandleSyntheticFrontEnd::
}
lldb::ValueObjectSP lldb_private::formatters::
- StdlibCoroutineHandleSyntheticFrontEnd::GetChildAtIndex(size_t idx) {
+ StdlibCoroutineHandleSyntheticFrontEnd::GetChildAtIndex(uint32_t idx) {
switch (idx) {
case 0:
return m_resume_ptr_sp;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.h b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.h
index 8ec2c14d2e9e96..5c6a80b57ff424 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.h
+++ b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.h
@@ -36,7 +36,7 @@ class StdlibCoroutineHandleSyntheticFrontEnd
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp
index c8fc3af4a9d4a2..6a9da1d17c7620 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp
@@ -35,7 +35,7 @@ class GenericBitsetFrontEnd : public SyntheticChildrenFrontEnd {
bool MightHaveChildren() override { return true; }
lldb::ChildCacheState Update() override;
uint32_t CalculateNumChildren() override { return m_elements.size(); }
- ValueObjectSP GetChildAtIndex(size_t idx) override;
+ ValueObjectSP GetChildAtIndex(uint32_t idx) override;
private:
llvm::StringRef GetDataContainerMemberName();
@@ -97,7 +97,7 @@ lldb::ChildCacheState GenericBitsetFrontEnd::Update() {
return lldb::ChildCacheState::eRefetch;
}
-ValueObjectSP GenericBitsetFrontEnd::GetChildAtIndex(size_t idx) {
+ValueObjectSP GenericBitsetFrontEnd::GetChildAtIndex(uint32_t idx) {
if (idx >= m_elements.size() || !m_first)
return ValueObjectSP();
diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp
index 34ae1a24892136..c06afb53eb8aad 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp
@@ -43,7 +43,7 @@ class GenericOptionalFrontend : public SyntheticChildrenFrontEnd {
bool MightHaveChildren() override { return true; }
uint32_t CalculateNumChildren() override { return m_has_value ? 1U : 0U; }
- ValueObjectSP GetChildAtIndex(size_t idx) override;
+ ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
private:
@@ -81,7 +81,7 @@ lldb::ChildCacheState GenericOptionalFrontend::Update() {
return lldb::ChildCacheState::eRefetch;
}
-ValueObjectSP GenericOptionalFrontend::GetChildAtIndex(size_t _idx) {
+ValueObjectSP GenericOptionalFrontend::GetChildAtIndex(uint32_t _idx) {
if (!m_has_value)
return ValueObjectSP();
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
index 710b235ce957f2..bba887fec3ac3f 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
@@ -358,7 +358,7 @@ uint32_t lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd::
lldb::ValueObjectSP
lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd::GetChildAtIndex(
- size_t idx) {
+ uint32_t idx) {
if (m_pair_ptr)
return m_pair_ptr->GetChildAtIndex(idx);
if (m_pair_sp)
@@ -515,7 +515,7 @@ uint32_t lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd::
}
lldb::ValueObjectSP lldb_private::formatters::
- LibCxxUnorderedMapIteratorSyntheticFrontEnd::GetChildAtIndex(size_t idx) {
+ LibCxxUnorderedMapIteratorSyntheticFrontEnd::GetChildAtIndex(uint32_t idx) {
if (m_pair_sp)
return m_pair_sp->GetChildAtIndex(idx);
return lldb::ValueObjectSP();
@@ -573,7 +573,7 @@ uint32_t lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd::
lldb::ValueObjectSP
lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd::GetChildAtIndex(
- size_t idx) {
+ uint32_t idx) {
if (!m_cntrl)
return lldb::ValueObjectSP();
@@ -670,7 +670,7 @@ uint32_t lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEnd::
lldb::ValueObjectSP
lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEnd::GetChildAtIndex(
- size_t idx) {
+ uint32_t idx) {
if (!m_value_ptr_sp)
return lldb::ValueObjectSP();
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h
index af4f313a905093..ad2f58508ab7b6 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h
@@ -89,7 +89,7 @@ class LibCxxMapIteratorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -137,7 +137,7 @@ class LibCxxUnorderedMapIteratorSyntheticFrontEnd
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -168,7 +168,7 @@ class LibcxxSharedPtrSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -188,7 +188,7 @@ class LibcxxUniquePtrSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp
index 484d756a300e30..8e4c36103a744d 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp
@@ -92,7 +92,7 @@ class LibcxxStdAtomicSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -131,7 +131,7 @@ uint32_t lldb_private::formatters::LibcxxStdAtomicSyntheticFrontEnd::
lldb::ValueObjectSP
lldb_private::formatters::LibcxxStdAtomicSyntheticFrontEnd::GetChildAtIndex(
- size_t idx) {
+ uint32_t idx) {
if (idx == 0)
return m_real_child->GetSP()->Clone(ConstString("Value"));
return nullptr;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp
index ef94815b3afc6d..00012dfc056e47 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp
@@ -28,7 +28,7 @@ class LibcxxInitializerListSyntheticFrontEnd
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -69,7 +69,7 @@ uint32_t lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd::
}
lldb::ValueObjectSP lldb_private::formatters::
- LibcxxInitializerListSyntheticFrontEnd::GetChildAtIndex(size_t idx) {
+ LibcxxInitializerListSyntheticFrontEnd::GetChildAtIndex(uint32_t idx) {
if (!m_start)
return lldb::ValueObjectSP();
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp
index d05a64b1eba569..17f6b737d9f628 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp
@@ -137,7 +137,7 @@ class ForwardListFrontEnd : public AbstractListFrontEnd {
ForwardListFrontEnd(ValueObject &valobj);
uint32_t CalculateNumChildren() override;
- ValueObjectSP GetChildAtIndex(size_t idx) override;
+ ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
};
@@ -149,7 +149,7 @@ class ListFrontEnd : public AbstractListFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -253,7 +253,7 @@ uint32_t ForwardListFrontEnd::CalculateNumChildren() {
return m_count;
}
-ValueObjectSP ForwardListFrontEnd::GetChildAtIndex(size_t idx) {
+ValueObjectSP ForwardListFrontEnd::GetChildAtIndex(uint32_t idx) {
if (idx >= CalculateNumChildren())
return nullptr;
@@ -343,7 +343,7 @@ uint32_t ListFrontEnd::CalculateNumChildren() {
}
}
-lldb::ValueObjectSP ListFrontEnd::GetChildAtIndex(size_t idx) {
+lldb::ValueObjectSP ListFrontEnd::GetChildAtIndex(uint32_t idx) {
static ConstString g_value("__value_");
static ConstString g_next("__next_");
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
index 28a9a26c9d2db2..6d24eb03779ca3 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
@@ -179,7 +179,7 @@ class LibcxxStdMapSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -308,7 +308,7 @@ void lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd::GetValueOffset(
lldb::ValueObjectSP
lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd::GetChildAtIndex(
- size_t idx) {
+ uint32_t idx) {
static ConstString g_cc_("__cc_"), g_cc("__cc");
static ConstString g_nc("__nc");
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp
index beab453b788adf..fbadee89b7b7f2 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp
@@ -32,7 +32,7 @@ class QueueFrontEnd : public SyntheticChildrenFrontEnd {
return m_container_sp ? m_container_sp->GetNumChildren() : 0;
}
- ValueObjectSP GetChildAtIndex(size_t idx) override {
+ ValueObjectSP GetChildAtIndex(uint32_t idx) override {
return m_container_sp ? m_container_sp->GetChildAtIndex(idx)
: nullptr;
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxRangesRefView.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxRangesRefView.cpp
index cda6c5d79c3190..74f54f76735667 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxRangesRefView.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxRangesRefView.cpp
@@ -32,7 +32,7 @@ class LibcxxStdRangesRefViewSyntheticFrontEnd
return 1;
}
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override {
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override {
// Since we only have a single child, return it
assert(idx == 0);
return m_range_sp;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp
index 5aaf1ec2d56e3d..af2b51d2b54016 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp
@@ -29,7 +29,7 @@ class LibcxxStdSpanSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
/// Determines properties of the std::span<> associated with this object
//
@@ -80,7 +80,7 @@ uint32_t lldb_private::formatters::LibcxxStdSpanSyntheticFrontEnd::
lldb::ValueObjectSP
lldb_private::formatters::LibcxxStdSpanSyntheticFrontEnd::GetChildAtIndex(
- size_t idx) {
+ uint32_t idx) {
if (!m_start)
return {};
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp
index 5c42d8551d4fe2..62bb7d619267a3 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp
@@ -27,7 +27,7 @@ class TupleFrontEnd: public SyntheticChildrenFrontEnd {
bool MightHaveChildren() override { return true; }
lldb::ChildCacheState Update() override;
uint32_t CalculateNumChildren() override { return m_elements.size(); }
- ValueObjectSP GetChildAtIndex(size_t idx) override;
+ ValueObjectSP GetChildAtIndex(uint32_t idx) override;
private:
// The lifetime of a ValueObject and all its derivative ValueObjects
@@ -58,7 +58,7 @@ lldb::ChildCacheState TupleFrontEnd::Update() {
return lldb::ChildCacheState::eRefetch;
}
-ValueObjectSP TupleFrontEnd::GetChildAtIndex(size_t idx) {
+ValueObjectSP TupleFrontEnd::GetChildAtIndex(uint32_t idx) {
if (idx >= m_elements.size())
return ValueObjectSP();
if (!m_base)
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
index 0be73a9e633d9a..b3c36429433570 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
@@ -35,7 +35,7 @@ class LibcxxStdUnorderedMapSyntheticFrontEnd
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -93,7 +93,7 @@ static bool isUnorderedMap(ConstString type_name) {
}
lldb::ValueObjectSP lldb_private::formatters::
- LibcxxStdUnorderedMapSyntheticFrontEnd::GetChildAtIndex(size_t idx) {
+ LibcxxStdUnorderedMapSyntheticFrontEnd::GetChildAtIndex(uint32_t idx) {
if (idx >= CalculateNumChildren())
return lldb::ValueObjectSP();
if (m_tree == nullptr)
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp
index eae7711c8cd9f8..463c7b8d7ce3bb 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp
@@ -26,7 +26,7 @@ class LibcxxStdValarraySyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -84,7 +84,7 @@ uint32_t lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd::
lldb::ValueObjectSP
lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd::GetChildAtIndex(
- size_t idx) {
+ uint32_t idx) {
if (!m_start || !m_finish)
return lldb::ValueObjectSP();
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp
index c704e1b8335eac..1f62062f09be30 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp
@@ -206,7 +206,7 @@ class VariantFrontEnd : public SyntheticChildrenFrontEnd {
bool MightHaveChildren() override { return true; }
lldb::ChildCacheState Update() override;
uint32_t CalculateNumChildren() override { return m_size; }
- ValueObjectSP GetChildAtIndex(size_t idx) override;
+ ValueObjectSP GetChildAtIndex(uint32_t idx) override;
private:
size_t m_size = 0;
@@ -233,7 +233,7 @@ lldb::ChildCacheState VariantFrontEnd::Update() {
return lldb::ChildCacheState::eRefetch;
}
-ValueObjectSP VariantFrontEnd::GetChildAtIndex(size_t idx) {
+ValueObjectSP VariantFrontEnd::GetChildAtIndex(uint32_t idx) {
if (idx >= m_size)
return {};
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp
index 62ff76b82a2a00..fcf727ad2ea027 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp
@@ -27,7 +27,7 @@ class LibcxxStdVectorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -48,7 +48,7 @@ class LibcxxVectorBoolSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -103,7 +103,7 @@ uint32_t lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd::
lldb::ValueObjectSP
lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd::GetChildAtIndex(
- size_t idx) {
+ uint32_t idx) {
if (!m_start || !m_finish)
return lldb::ValueObjectSP();
@@ -172,7 +172,7 @@ uint32_t lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd::
lldb::ValueObjectSP
lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd::GetChildAtIndex(
- size_t idx) {
+ uint32_t idx) {
auto iter = m_children.find(idx), end = m_children.end();
if (iter != end)
return iter->second;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
index b2249d23961f6d..5abb3d50674bc5 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
@@ -45,7 +45,7 @@ class LibstdcppMapIteratorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -66,7 +66,7 @@ class LibStdcppSharedPtrSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -137,7 +137,7 @@ uint32_t LibstdcppMapIteratorSyntheticFrontEnd::CalculateNumChildren() {
}
lldb::ValueObjectSP
-LibstdcppMapIteratorSyntheticFrontEnd::GetChildAtIndex(size_t idx) {
+LibstdcppMapIteratorSyntheticFrontEnd::GetChildAtIndex(uint32_t idx) {
if (m_pair_address != 0 && m_pair_type) {
if (!m_pair_sp)
m_pair_sp = CreateValueObjectFromAddress("pair", m_pair_address,
@@ -222,7 +222,7 @@ lldb::ChildCacheState VectorIteratorSyntheticFrontEnd::Update() {
uint32_t VectorIteratorSyntheticFrontEnd::CalculateNumChildren() { return 1; }
lldb::ValueObjectSP
-VectorIteratorSyntheticFrontEnd::GetChildAtIndex(size_t idx) {
+VectorIteratorSyntheticFrontEnd::GetChildAtIndex(uint32_t idx) {
if (idx == 0)
return m_item_sp;
return lldb::ValueObjectSP();
@@ -374,7 +374,7 @@ LibStdcppSharedPtrSyntheticFrontEnd::LibStdcppSharedPtrSyntheticFrontEnd(
uint32_t LibStdcppSharedPtrSyntheticFrontEnd::CalculateNumChildren() { return 1; }
lldb::ValueObjectSP
-LibStdcppSharedPtrSyntheticFrontEnd::GetChildAtIndex(size_t idx) {
+LibStdcppSharedPtrSyntheticFrontEnd::GetChildAtIndex(uint32_t idx) {
if (idx == 0)
return m_ptr_obj->GetSP();
if (idx == 1) {
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp
index ba3116d01a72b8..64d2ec9d943a2a 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp
@@ -28,7 +28,7 @@ class LibStdcppTupleSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -89,7 +89,7 @@ lldb::ChildCacheState LibStdcppTupleSyntheticFrontEnd::Update() {
bool LibStdcppTupleSyntheticFrontEnd::MightHaveChildren() { return true; }
lldb::ValueObjectSP
-LibStdcppTupleSyntheticFrontEnd::GetChildAtIndex(size_t idx) {
+LibStdcppTupleSyntheticFrontEnd::GetChildAtIndex(uint32_t idx) {
if (idx < m_members.size() && m_members[idx])
return m_members[idx]->GetSP();
return lldb::ValueObjectSP();
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp
index aca18ee694c0e2..3a48fe412e0721 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp
@@ -28,7 +28,7 @@ class LibStdcppUniquePtrSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -116,7 +116,7 @@ lldb::ChildCacheState LibStdcppUniquePtrSyntheticFrontEnd::Update() {
bool LibStdcppUniquePtrSyntheticFrontEnd::MightHaveChildren() { return true; }
lldb::ValueObjectSP
-LibStdcppUniquePtrSyntheticFrontEnd::GetChildAtIndex(size_t idx) {
+LibStdcppUniquePtrSyntheticFrontEnd::GetChildAtIndex(uint32_t idx) {
if (idx == 0 && m_ptr_obj)
return m_ptr_obj->GetSP();
if (idx == 1 && m_del_obj)
diff --git a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
index 05b324a30f2d67..cb740f8e71e168 100644
--- a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
+++ b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
@@ -1040,7 +1040,7 @@ class ObjCClassSyntheticChildrenFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override { return 0; }
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override {
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override {
return lldb::ValueObjectSP();
}
diff --git a/lldb/source/Plugins/Language/ObjC/NSArray.cpp b/lldb/source/Plugins/Language/ObjC/NSArray.cpp
index 9ee12e50b8ace9..7f060b2613d6f3 100644
--- a/lldb/source/Plugins/Language/ObjC/NSArray.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSArray.cpp
@@ -52,7 +52,7 @@ class NSArrayMSyntheticFrontEndBase : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override = 0;
@@ -216,7 +216,7 @@ class GenericNSArrayISyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -304,7 +304,7 @@ class NSArray0SyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -321,7 +321,7 @@ class NSArray1SyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -484,7 +484,7 @@ uint32_t lldb_private::formatters::NSArrayMSyntheticFrontEndBase::
lldb::ValueObjectSP
lldb_private::formatters::NSArrayMSyntheticFrontEndBase::GetChildAtIndex(
- size_t idx) {
+ uint32_t idx) {
if (idx >= CalculateNumChildren())
return lldb::ValueObjectSP();
lldb::addr_t object_at_idx = GetDataAddress();
@@ -684,7 +684,7 @@ lldb_private::formatters::GenericNSArrayISyntheticFrontEnd<D32, D64, Inline>::
template <typename D32, typename D64, bool Inline>
lldb::ValueObjectSP
lldb_private::formatters::GenericNSArrayISyntheticFrontEnd<D32, D64, Inline>::
- GetChildAtIndex(size_t idx) {
+ GetChildAtIndex(uint32_t idx) {
if (idx >= CalculateNumChildren())
return lldb::ValueObjectSP();
lldb::addr_t object_at_idx;
@@ -735,7 +735,7 @@ bool lldb_private::formatters::NSArray0SyntheticFrontEnd::MightHaveChildren() {
lldb::ValueObjectSP
lldb_private::formatters::NSArray0SyntheticFrontEnd::GetChildAtIndex(
- size_t idx) {
+ uint32_t idx) {
return lldb::ValueObjectSP();
}
@@ -770,7 +770,7 @@ bool lldb_private::formatters::NSArray1SyntheticFrontEnd::MightHaveChildren() {
lldb::ValueObjectSP
lldb_private::formatters::NSArray1SyntheticFrontEnd::GetChildAtIndex(
- size_t idx) {
+ uint32_t idx) {
static const ConstString g_zero("[0]");
if (idx == 0) {
diff --git a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
index 3bb2e4fac02e41..da94eda1529ce1 100644
--- a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
@@ -105,7 +105,7 @@ class NSDictionaryISyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -146,7 +146,7 @@ class NSConstantDictionarySyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -178,7 +178,7 @@ class NSCFDictionarySyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -211,7 +211,7 @@ class NSDictionary1SyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -232,7 +232,7 @@ class GenericNSDictionaryMSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -265,7 +265,7 @@ namespace Foundation1100 {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -655,7 +655,7 @@ bool lldb_private::formatters::NSDictionaryISyntheticFrontEnd::
lldb::ValueObjectSP
lldb_private::formatters::NSDictionaryISyntheticFrontEnd::GetChildAtIndex(
- size_t idx) {
+ uint32_t idx) {
uint32_t num_children = CalculateNumChildren();
if (idx >= num_children)
@@ -777,7 +777,7 @@ bool lldb_private::formatters::NSCFDictionarySyntheticFrontEnd::
lldb::ValueObjectSP
lldb_private::formatters::NSCFDictionarySyntheticFrontEnd::GetChildAtIndex(
- size_t idx) {
+ uint32_t idx) {
lldb::addr_t m_keys_ptr = m_hashtable.GetKeyPointer();
lldb::addr_t m_values_ptr = m_hashtable.GetValuePointer();
@@ -920,7 +920,7 @@ bool lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd::
}
lldb::ValueObjectSP lldb_private::formatters::
- NSConstantDictionarySyntheticFrontEnd::GetChildAtIndex(size_t idx) {
+ NSConstantDictionarySyntheticFrontEnd::GetChildAtIndex(uint32_t idx) {
uint32_t num_children = CalculateNumChildren();
if (idx >= num_children)
@@ -1012,7 +1012,7 @@ bool lldb_private::formatters::NSDictionary1SyntheticFrontEnd::
lldb::ValueObjectSP
lldb_private::formatters::NSDictionary1SyntheticFrontEnd::GetChildAtIndex(
- size_t idx) {
+ uint32_t idx) {
if (idx != 0)
return lldb::ValueObjectSP();
@@ -1140,7 +1140,7 @@ lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd<D32,D64>::
template <typename D32, typename D64>
lldb::ValueObjectSP
lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd<
- D32, D64>::GetChildAtIndex(size_t idx) {
+ D32, D64>::GetChildAtIndex(uint32_t idx) {
lldb::addr_t m_keys_ptr;
lldb::addr_t m_values_ptr;
if (m_data_32) {
@@ -1300,7 +1300,7 @@ lldb_private::formatters::Foundation1100::
lldb::ValueObjectSP
lldb_private::formatters::Foundation1100::
- NSDictionaryMSyntheticFrontEnd::GetChildAtIndex(size_t idx) {
+ NSDictionaryMSyntheticFrontEnd::GetChildAtIndex(uint32_t idx) {
lldb::addr_t m_keys_ptr =
(m_data_32 ? m_data_32->_keys_addr : m_data_64->_keys_addr);
lldb::addr_t m_values_ptr =
diff --git a/lldb/source/Plugins/Language/ObjC/NSError.cpp b/lldb/source/Plugins/Language/ObjC/NSError.cpp
index 786d2bc51871a5..b034e799b716e7 100644
--- a/lldb/source/Plugins/Language/ObjC/NSError.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSError.cpp
@@ -124,7 +124,7 @@ class NSErrorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
return 0;
}
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override {
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override {
if (idx != 0)
return lldb::ValueObjectSP();
diff --git a/lldb/source/Plugins/Language/ObjC/NSException.cpp b/lldb/source/Plugins/Language/ObjC/NSException.cpp
index e47939c718010d..09d3a1b42b747f 100644
--- a/lldb/source/Plugins/Language/ObjC/NSException.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSException.cpp
@@ -127,7 +127,7 @@ class NSExceptionSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
return 4;
}
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override {
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override {
switch (idx) {
case 0: return m_name_sp;
case 1: return m_reason_sp;
diff --git a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
index 45c020f8d1b359..10bb907c58ed42 100644
--- a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
@@ -42,7 +42,7 @@ class NSIndexPathSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override { return m_impl.GetNumIndexes(); }
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override {
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override {
return m_impl.GetIndexAtIndex(idx, m_uint_star_type);
}
diff --git a/lldb/source/Plugins/Language/ObjC/NSSet.cpp b/lldb/source/Plugins/Language/ObjC/NSSet.cpp
index 97f19c1ac937d4..c965a2a1340030 100644
--- a/lldb/source/Plugins/Language/ObjC/NSSet.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSSet.cpp
@@ -48,7 +48,7 @@ class NSSetISyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -86,7 +86,7 @@ class NSCFSetSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -119,7 +119,7 @@ class GenericNSSetMSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -235,7 +235,7 @@ class NSSetCodeRunningSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
uint32_t CalculateNumChildren() override;
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
+ lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -466,7 +466,8 @@ bool lldb_private::formatters::NSSetISyntheticFrontEnd::MightHaveChildren() {
}
lldb::ValueObjectSP
-lldb_private::formatters::NSSetISyntheticFrontEnd::GetChildAtIndex(size_t idx) {
+lldb_private::formatters::NSSetISyntheticFrontEnd::GetChildAtIndex(
+ uint32_t idx) {
uint32_t num_children = CalculateNumChildren();
if (idx >= num_children)
@@ -587,7 +588,7 @@ bool lldb_private::formatters::NSCFSetSyntheticFrontEnd::MightHaveChildren() {
lldb::ValueObjectSP
lldb_private::formatters::NSCFSetSyntheticFrontEnd::GetChildAtIndex(
- size_t idx) {
+ uint32_t idx) {
lldb::addr_t m_values_ptr = m_hashtable.GetValuePointer();
const uint32_t num_children = CalculateNumChildren();
@@ -748,7 +749,7 @@ lldb_private::formatters::
template <typename D32, typename D64>
lldb::ValueObjectSP
lldb_private::formatters::
- GenericNSSetMSyntheticFrontEnd<D32, D64>::GetChildAtIndex(size_t idx) {
+ GenericNSSetMSyntheticFrontEnd<D32, D64>::GetChildAtIndex(uint32_t idx) {
lldb::addr_t m_objs_addr =
(m_data_32 ? m_data_32->_objs_addr : m_data_64->_objs_addr);
>From d6d52d29cad6722cfe86591c225d19ae18c61247 Mon Sep 17 00:00:00 2001
From: Adrian Prantl <aprantl at apple.com>
Date: Tue, 5 Mar 2024 16:29:00 -0800
Subject: [PATCH 4/5] Change Get|SetNumChildren to use unint32_t
---
lldb/include/lldb/Core/ValueObject.h | 4 ++--
lldb/source/Core/ValueObject.cpp | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/lldb/include/lldb/Core/ValueObject.h b/lldb/include/lldb/Core/ValueObject.h
index 757ae0601c2466..b4d2c8098edc71 100644
--- a/lldb/include/lldb/Core/ValueObject.h
+++ b/lldb/include/lldb/Core/ValueObject.h
@@ -476,7 +476,7 @@ class ValueObject {
virtual size_t GetIndexOfChildWithName(llvm::StringRef name);
- size_t GetNumChildren(uint32_t max = UINT32_MAX);
+ uint32_t GetNumChildren(uint32_t max = UINT32_MAX);
const Value &GetValue() const { return m_value; }
@@ -960,7 +960,7 @@ class ValueObject {
/// Should only be called by ValueObject::GetNumChildren().
virtual uint32_t CalculateNumChildren(uint32_t max = UINT32_MAX) = 0;
- void SetNumChildren(size_t num_children);
+ void SetNumChildren(uint32_t num_children);
void SetValueDidChange(bool value_changed) {
m_flags.m_value_did_change = value_changed;
diff --git a/lldb/source/Core/ValueObject.cpp b/lldb/source/Core/ValueObject.cpp
index dcf7ccadef8801..0ed7f03be25c16 100644
--- a/lldb/source/Core/ValueObject.cpp
+++ b/lldb/source/Core/ValueObject.cpp
@@ -440,7 +440,7 @@ ValueObjectSP ValueObject::GetChildMemberWithName(llvm::StringRef name,
return child_sp;
}
-size_t ValueObject::GetNumChildren(uint32_t max) {
+uint32_t ValueObject::GetNumChildren(uint32_t max) {
UpdateValueIfNeeded();
if (max < UINT32_MAX) {
@@ -470,7 +470,7 @@ bool ValueObject::MightHaveChildren() {
}
// Should only be called by ValueObject::GetNumChildren()
-void ValueObject::SetNumChildren(size_t num_children) {
+void ValueObject::SetNumChildren(uint32_t num_children) {
m_flags.m_children_count_valid = true;
m_children.SetChildrenCount(num_children);
}
>From cc079ca55d3f5672a3e2b56a658b5c76b1d30fdb Mon Sep 17 00:00:00 2001
From: Adrian Prantl <aprantl at apple.com>
Date: Fri, 1 Mar 2024 12:23:39 -0800
Subject: [PATCH 5/5] Let GetNumChildren()/CalculateNumChildren() return
llvm::Expected
This is an NFC change that does not yet add any error handling or
change any code to return any errors.
---
lldb/include/lldb/Core/ValueObject.h | 5 +-
lldb/include/lldb/Core/ValueObjectCast.h | 2 +-
lldb/include/lldb/Core/ValueObjectChild.h | 2 +-
.../lldb/Core/ValueObjectConstResult.h | 2 +-
.../lldb/Core/ValueObjectDynamicValue.h | 2 +-
lldb/include/lldb/Core/ValueObjectMemory.h | 2 +-
lldb/include/lldb/Core/ValueObjectRegister.h | 4 +-
.../lldb/Core/ValueObjectSyntheticFilter.h | 2 +-
lldb/include/lldb/Core/ValueObjectVTable.h | 2 +-
lldb/include/lldb/Core/ValueObjectVariable.h | 2 +-
.../lldb/DataFormatters/TypeSynthetic.h | 18 +++--
.../lldb/DataFormatters/VectorIterator.h | 2 +-
lldb/include/lldb/Symbol/CompilerType.h | 5 +-
lldb/include/lldb/Symbol/Type.h | 2 +-
lldb/include/lldb/Symbol/TypeSystem.h | 7 +-
.../lldb/Target/StackFrameRecognizer.h | 3 +-
lldb/include/lldb/Utility/Log.h | 12 +++
lldb/source/API/SBValue.cpp | 3 +-
lldb/source/Core/FormatEntity.cpp | 4 +-
lldb/source/Core/IOHandlerCursesGUI.cpp | 3 +-
lldb/source/Core/ValueObject.cpp | 28 +++++--
lldb/source/Core/ValueObjectCast.cpp | 6 +-
lldb/source/Core/ValueObjectChild.cpp | 6 +-
lldb/source/Core/ValueObjectConstResult.cpp | 7 +-
lldb/source/Core/ValueObjectDynamicValue.cpp | 7 +-
lldb/source/Core/ValueObjectMemory.cpp | 10 ++-
lldb/source/Core/ValueObjectRegister.cpp | 13 +++-
.../Core/ValueObjectSyntheticFilter.cpp | 22 ++++--
lldb/source/Core/ValueObjectVTable.cpp | 6 +-
lldb/source/Core/ValueObjectVariable.cpp | 7 +-
lldb/source/DataFormatters/FormatManager.cpp | 12 ++-
lldb/source/DataFormatters/TypeSynthetic.cpp | 6 +-
.../DataFormatters/ValueObjectPrinter.cpp | 3 +-
lldb/source/DataFormatters/VectorType.cpp | 14 +++-
.../Clang/ClangExpressionSourceCode.cpp | 3 +-
.../TSan/InstrumentationRuntimeTSan.cpp | 5 +-
.../Language/CPlusPlus/BlockPointer.cpp | 5 +-
.../Plugins/Language/CPlusPlus/Coroutines.cpp | 9 ++-
.../Plugins/Language/CPlusPlus/Coroutines.h | 2 +-
.../Language/CPlusPlus/GenericBitset.cpp | 4 +-
.../Language/CPlusPlus/GenericOptional.cpp | 10 ++-
.../Plugins/Language/CPlusPlus/LibCxx.cpp | 19 ++---
.../Plugins/Language/CPlusPlus/LibCxx.h | 8 +-
.../Language/CPlusPlus/LibCxxAtomic.cpp | 6 +-
.../CPlusPlus/LibCxxInitializerList.cpp | 6 +-
.../Plugins/Language/CPlusPlus/LibCxxList.cpp | 14 ++--
.../Plugins/Language/CPlusPlus/LibCxxMap.cpp | 16 ++--
.../Language/CPlusPlus/LibCxxQueue.cpp | 2 +-
.../CPlusPlus/LibCxxRangesRefView.cpp | 2 +-
.../Plugins/Language/CPlusPlus/LibCxxSpan.cpp | 6 +-
.../Language/CPlusPlus/LibCxxTuple.cpp | 4 +-
.../Language/CPlusPlus/LibCxxUnorderedMap.cpp | 9 ++-
.../Language/CPlusPlus/LibCxxValarray.cpp | 6 +-
.../Language/CPlusPlus/LibCxxVariant.cpp | 2 +-
.../Language/CPlusPlus/LibCxxVector.cpp | 15 ++--
.../Plugins/Language/CPlusPlus/LibStdcpp.cpp | 17 +++--
.../Language/CPlusPlus/LibStdcppTuple.cpp | 8 +-
.../CPlusPlus/LibStdcppUniquePointer.cpp | 5 +-
lldb/source/Plugins/Language/ObjC/Cocoa.cpp | 2 +-
lldb/source/Plugins/Language/ObjC/NSArray.cpp | 34 +++++----
.../Plugins/Language/ObjC/NSDictionary.cpp | 74 +++++++++++--------
lldb/source/Plugins/Language/ObjC/NSError.cpp | 2 +-
.../Plugins/Language/ObjC/NSException.cpp | 4 +-
.../Plugins/Language/ObjC/NSIndexPath.cpp | 7 +-
lldb/source/Plugins/Language/ObjC/NSSet.cpp | 38 ++++++----
.../AppleObjCRuntime/AppleObjCRuntime.cpp | 4 +-
.../TypeSystem/Clang/TypeSystemClang.cpp | 29 +++++---
.../TypeSystem/Clang/TypeSystemClang.h | 7 +-
lldb/source/Symbol/CompilerType.cpp | 5 +-
lldb/source/Symbol/Type.cpp | 2 +-
lldb/source/Symbol/Variable.cpp | 7 +-
lldb/source/Target/StackFrame.cpp | 20 ++---
72 files changed, 402 insertions(+), 247 deletions(-)
diff --git a/lldb/include/lldb/Core/ValueObject.h b/lldb/include/lldb/Core/ValueObject.h
index b4d2c8098edc71..652bbef0516eca 100644
--- a/lldb/include/lldb/Core/ValueObject.h
+++ b/lldb/include/lldb/Core/ValueObject.h
@@ -476,7 +476,7 @@ class ValueObject {
virtual size_t GetIndexOfChildWithName(llvm::StringRef name);
- uint32_t GetNumChildren(uint32_t max = UINT32_MAX);
+ llvm::Expected<uint32_t> GetNumChildren(uint32_t max = UINT32_MAX);
const Value &GetValue() const { return m_value; }
@@ -958,7 +958,8 @@ class ValueObject {
int32_t synthetic_index);
/// Should only be called by ValueObject::GetNumChildren().
- virtual uint32_t CalculateNumChildren(uint32_t max = UINT32_MAX) = 0;
+ virtual llvm::Expected<uint32_t>
+ CalculateNumChildren(uint32_t max = UINT32_MAX) = 0;
void SetNumChildren(uint32_t num_children);
diff --git a/lldb/include/lldb/Core/ValueObjectCast.h b/lldb/include/lldb/Core/ValueObjectCast.h
index 51c647680d5227..ba25e166f32688 100644
--- a/lldb/include/lldb/Core/ValueObjectCast.h
+++ b/lldb/include/lldb/Core/ValueObjectCast.h
@@ -33,7 +33,7 @@ class ValueObjectCast : public ValueObject {
std::optional<uint64_t> GetByteSize() override;
- uint32_t CalculateNumChildren(uint32_t max) override;
+ llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
lldb::ValueType GetValueType() const override;
diff --git a/lldb/include/lldb/Core/ValueObjectChild.h b/lldb/include/lldb/Core/ValueObjectChild.h
index 47a13be08bb83b..1f88e607cb5737 100644
--- a/lldb/include/lldb/Core/ValueObjectChild.h
+++ b/lldb/include/lldb/Core/ValueObjectChild.h
@@ -39,7 +39,7 @@ class ValueObjectChild : public ValueObject {
lldb::ValueType GetValueType() const override;
- uint32_t CalculateNumChildren(uint32_t max) override;
+ llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
ConstString GetTypeName() override;
diff --git a/lldb/include/lldb/Core/ValueObjectConstResult.h b/lldb/include/lldb/Core/ValueObjectConstResult.h
index 9f1246cf2a7874..37dc0867f26c9e 100644
--- a/lldb/include/lldb/Core/ValueObjectConstResult.h
+++ b/lldb/include/lldb/Core/ValueObjectConstResult.h
@@ -67,7 +67,7 @@ class ValueObjectConstResult : public ValueObject {
lldb::ValueType GetValueType() const override;
- uint32_t CalculateNumChildren(uint32_t max) override;
+ llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
ConstString GetTypeName() override;
diff --git a/lldb/include/lldb/Core/ValueObjectDynamicValue.h b/lldb/include/lldb/Core/ValueObjectDynamicValue.h
index 21a9b409fd5bd7..82c20eee0cd42d 100644
--- a/lldb/include/lldb/Core/ValueObjectDynamicValue.h
+++ b/lldb/include/lldb/Core/ValueObjectDynamicValue.h
@@ -43,7 +43,7 @@ class ValueObjectDynamicValue : public ValueObject {
ConstString GetDisplayTypeName() override;
- uint32_t CalculateNumChildren(uint32_t max) override;
+ llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
lldb::ValueType GetValueType() const override;
diff --git a/lldb/include/lldb/Core/ValueObjectMemory.h b/lldb/include/lldb/Core/ValueObjectMemory.h
index a74b325546b03c..a8fb0353d601b2 100644
--- a/lldb/include/lldb/Core/ValueObjectMemory.h
+++ b/lldb/include/lldb/Core/ValueObjectMemory.h
@@ -47,7 +47,7 @@ class ValueObjectMemory : public ValueObject {
ConstString GetDisplayTypeName() override;
- uint32_t CalculateNumChildren(uint32_t max) override;
+ llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
lldb::ValueType GetValueType() const override;
diff --git a/lldb/include/lldb/Core/ValueObjectRegister.h b/lldb/include/lldb/Core/ValueObjectRegister.h
index 6c470c1a686503..fec8566ba33d90 100644
--- a/lldb/include/lldb/Core/ValueObjectRegister.h
+++ b/lldb/include/lldb/Core/ValueObjectRegister.h
@@ -47,7 +47,7 @@ class ValueObjectRegisterSet : public ValueObject {
ConstString GetQualifiedTypeName() override;
- uint32_t CalculateNumChildren(uint32_t max) override;
+ llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
ValueObject *CreateChildAtIndex(size_t idx, bool synthetic_array_member,
int32_t synthetic_index) override;
@@ -95,7 +95,7 @@ class ValueObjectRegister : public ValueObject {
ConstString GetTypeName() override;
- uint32_t CalculateNumChildren(uint32_t max) override;
+ llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
bool SetValueFromCString(const char *value_str, Status &error) override;
diff --git a/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h b/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h
index 1e54babc94f395..ca6d6c728005db 100644
--- a/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h
+++ b/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h
@@ -47,7 +47,7 @@ class ValueObjectSynthetic : public ValueObject {
bool MightHaveChildren() override;
- uint32_t CalculateNumChildren(uint32_t max) override;
+ llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
lldb::ValueType GetValueType() const override;
diff --git a/lldb/include/lldb/Core/ValueObjectVTable.h b/lldb/include/lldb/Core/ValueObjectVTable.h
index e7e14fc83d7892..4662f395a4dde9 100644
--- a/lldb/include/lldb/Core/ValueObjectVTable.h
+++ b/lldb/include/lldb/Core/ValueObjectVTable.h
@@ -64,7 +64,7 @@ class ValueObjectVTable : public ValueObject {
std::optional<uint64_t> GetByteSize() override;
- uint32_t CalculateNumChildren(uint32_t max) override;
+ llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
ValueObject *CreateChildAtIndex(size_t idx, bool synthetic_array_member,
int32_t synthetic_index) override;
diff --git a/lldb/include/lldb/Core/ValueObjectVariable.h b/lldb/include/lldb/Core/ValueObjectVariable.h
index da270300df0b30..db3847f14a0b5a 100644
--- a/lldb/include/lldb/Core/ValueObjectVariable.h
+++ b/lldb/include/lldb/Core/ValueObjectVariable.h
@@ -46,7 +46,7 @@ class ValueObjectVariable : public ValueObject {
ConstString GetDisplayTypeName() override;
- uint32_t CalculateNumChildren(uint32_t max) override;
+ llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
lldb::ValueType GetValueType() const override;
diff --git a/lldb/include/lldb/DataFormatters/TypeSynthetic.h b/lldb/include/lldb/DataFormatters/TypeSynthetic.h
index 38f3ce0fa5f011..1c47b32c0ecc54 100644
--- a/lldb/include/lldb/DataFormatters/TypeSynthetic.h
+++ b/lldb/include/lldb/DataFormatters/TypeSynthetic.h
@@ -38,11 +38,13 @@ class SyntheticChildrenFrontEnd {
virtual ~SyntheticChildrenFrontEnd() = default;
- virtual uint32_t CalculateNumChildren() = 0;
+ virtual llvm::Expected<uint32_t> CalculateNumChildren() = 0;
- virtual uint32_t CalculateNumChildren(uint32_t max) {
+ virtual llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) {
auto count = CalculateNumChildren();
- return count <= max ? count : max;
+ if (!count)
+ return count;
+ return *count <= max ? *count : max;
}
virtual lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) = 0;
@@ -109,7 +111,7 @@ class SyntheticValueProviderFrontEnd : public SyntheticChildrenFrontEnd {
~SyntheticValueProviderFrontEnd() override = default;
- uint32_t CalculateNumChildren() override { return 0; }
+ llvm::Expected<uint32_t> CalculateNumChildren() override { return 0; }
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override { return nullptr; }
@@ -322,7 +324,9 @@ class TypeFilterImpl : public SyntheticChildren {
~FrontEnd() override = default;
- uint32_t CalculateNumChildren() override { return filter->GetCount(); }
+ llvm::Expected<uint32_t> CalculateNumChildren() override {
+ return filter->GetCount();
+ }
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override {
if (idx >= filter->GetCount())
@@ -426,9 +430,9 @@ class ScriptedSyntheticChildren : public SyntheticChildren {
bool IsValid();
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
- uint32_t CalculateNumChildren(uint32_t max) override;
+ llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
diff --git a/lldb/include/lldb/DataFormatters/VectorIterator.h b/lldb/include/lldb/DataFormatters/VectorIterator.h
index 7711b9de95dba8..70bcf50ca1b1d2 100644
--- a/lldb/include/lldb/DataFormatters/VectorIterator.h
+++ b/lldb/include/lldb/DataFormatters/VectorIterator.h
@@ -24,7 +24,7 @@ class VectorIteratorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
VectorIteratorSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp,
llvm::ArrayRef<ConstString> item_names);
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
diff --git a/lldb/include/lldb/Symbol/CompilerType.h b/lldb/include/lldb/Symbol/CompilerType.h
index 414c44275aaafc..c1dce4ccbf79c2 100644
--- a/lldb/include/lldb/Symbol/CompilerType.h
+++ b/lldb/include/lldb/Symbol/CompilerType.h
@@ -386,8 +386,9 @@ class CompilerType {
std::optional<size_t> GetTypeBitAlign(ExecutionContextScope *exe_scope) const;
- uint32_t GetNumChildren(bool omit_empty_base_classes,
- const ExecutionContext *exe_ctx) const;
+ llvm::Expected<uint32_t>
+ GetNumChildren(bool omit_empty_base_classes,
+ const ExecutionContext *exe_ctx) const;
lldb::BasicType GetBasicTypeEnumeration() const;
diff --git a/lldb/include/lldb/Symbol/Type.h b/lldb/include/lldb/Symbol/Type.h
index acd1a769f13cd6..b5eac5fa732d67 100644
--- a/lldb/include/lldb/Symbol/Type.h
+++ b/lldb/include/lldb/Symbol/Type.h
@@ -440,7 +440,7 @@ class Type : public std::enable_shared_from_this<Type>, public UserID {
std::optional<uint64_t> GetByteSize(ExecutionContextScope *exe_scope);
- uint32_t GetNumChildren(bool omit_empty_base_classes);
+ llvm::Expected<uint32_t> GetNumChildren(bool omit_empty_base_classes);
bool IsAggregateType();
diff --git a/lldb/include/lldb/Symbol/TypeSystem.h b/lldb/include/lldb/Symbol/TypeSystem.h
index 63829131556e87..f647fcbf1636ea 100644
--- a/lldb/include/lldb/Symbol/TypeSystem.h
+++ b/lldb/include/lldb/Symbol/TypeSystem.h
@@ -300,9 +300,10 @@ class TypeSystem : public PluginInterface,
virtual lldb::Format GetFormat(lldb::opaque_compiler_type_t type) = 0;
- virtual uint32_t GetNumChildren(lldb::opaque_compiler_type_t type,
- bool omit_empty_base_classes,
- const ExecutionContext *exe_ctx) = 0;
+ virtual llvm::Expected<uint32_t>
+ GetNumChildren(lldb::opaque_compiler_type_t type,
+ bool omit_empty_base_classes,
+ const ExecutionContext *exe_ctx) = 0;
virtual CompilerType GetBuiltinTypeByName(ConstString name);
diff --git a/lldb/include/lldb/Target/StackFrameRecognizer.h b/lldb/include/lldb/Target/StackFrameRecognizer.h
index e111f4a4dc7029..5e8e12b2a4e961 100644
--- a/lldb/include/lldb/Target/StackFrameRecognizer.h
+++ b/lldb/include/lldb/Target/StackFrameRecognizer.h
@@ -164,7 +164,8 @@ class ValueObjectRecognizerSynthesizedValue : public ValueObject {
m_value = m_parent->GetValue();
return true;
}
- uint32_t CalculateNumChildren(uint32_t max = UINT32_MAX) override {
+ llvm::Expected<uint32_t>
+ CalculateNumChildren(uint32_t max = UINT32_MAX) override {
return m_parent->GetNumChildren(max);
}
CompilerType GetCompilerTypeImpl() override {
diff --git a/lldb/include/lldb/Utility/Log.h b/lldb/include/lldb/Utility/Log.h
index 1fe28d61b9dacf..a174dc3489adf2 100644
--- a/lldb/include/lldb/Utility/Log.h
+++ b/lldb/include/lldb/Utility/Log.h
@@ -373,4 +373,16 @@ template <typename Cat> Log *GetLog(Cat mask) {
::llvm::consumeError(::std::move(error_private)); \
} while (0)
+/// Like \c llvm::expectedToStdOptional(value_or_err).value_or(value) but
+/// logs any error to channel.
+template <typename T>
+T ValueOrLogV(lldb_private::Log *log, llvm::Expected<T> &&value_or_err,
+ T value) {
+ if (value_or_err)
+ return *value_or_err;
+ if (log && log->GetVerbose())
+ LLDB_LOG_ERROR(log, value_or_err.takeError(), "{0}");
+ return value;
+}
+
#endif // LLDB_UTILITY_LOG_H
diff --git a/lldb/source/API/SBValue.cpp b/lldb/source/API/SBValue.cpp
index 89d26a1fbe2824..1975f012d1f23f 100644
--- a/lldb/source/API/SBValue.cpp
+++ b/lldb/source/API/SBValue.cpp
@@ -947,7 +947,8 @@ uint32_t SBValue::GetNumChildren(uint32_t max) {
ValueLocker locker;
lldb::ValueObjectSP value_sp(GetSP(locker));
if (value_sp)
- num_children = value_sp->GetNumChildren(max);
+ num_children =
+ ValueOrLogV(GetLog(LLDBLog::API), value_sp->GetNumChildren(max), 0u);
return num_children;
}
diff --git a/lldb/source/Core/FormatEntity.cpp b/lldb/source/Core/FormatEntity.cpp
index fa5eadc6ff4e9a..45caa56d5b9ca9 100644
--- a/lldb/source/Core/FormatEntity.cpp
+++ b/lldb/source/Core/FormatEntity.cpp
@@ -926,7 +926,9 @@ static bool DumpValue(Stream &s, const SymbolContext *sc,
s.PutChar('[');
if (index_higher < 0)
- index_higher = valobj->GetNumChildren() - 1;
+ index_higher = ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ valobj->GetNumChildren(), 0u) -
+ 1;
uint32_t max_num_children =
target->GetTargetSP()->GetMaximumNumberOfChildrenToDisplay();
diff --git a/lldb/source/Core/IOHandlerCursesGUI.cpp b/lldb/source/Core/IOHandlerCursesGUI.cpp
index 620e68a28510ef..ee0676a09cf26b 100644
--- a/lldb/source/Core/IOHandlerCursesGUI.cpp
+++ b/lldb/source/Core/IOHandlerCursesGUI.cpp
@@ -4519,7 +4519,8 @@ struct Row {
calculated_children = true;
ValueObjectSP valobj = value.GetSP();
if (valobj) {
- const size_t num_children = valobj->GetNumChildren();
+ const uint32_t num_children = ValueOrLogV(
+ GetLog(LLDBLog::DataFormatters), valobj->GetNumChildren(), 0u);
for (size_t i = 0; i < num_children; ++i) {
children.push_back(Row(valobj->GetChildAtIndex(i), this));
}
diff --git a/lldb/source/Core/ValueObject.cpp b/lldb/source/Core/ValueObject.cpp
index 0ed7f03be25c16..e1228c04413253 100644
--- a/lldb/source/Core/ValueObject.cpp
+++ b/lldb/source/Core/ValueObject.cpp
@@ -377,7 +377,8 @@ ValueObjectSP ValueObject::GetChildAtIndex(uint32_t idx, bool can_create) {
// We may need to update our value if we are dynamic
if (IsPossibleDynamicType())
UpdateValueIfNeeded(false);
- if (idx < GetNumChildren()) {
+ if (idx <
+ ValueOrLogV(GetLog(LLDBLog::DataFormatters), GetNumChildren(), 0u)) {
// Check if we have already made the child value object?
if (can_create && !m_children.HasChildAtIndex(idx)) {
// No we haven't created the child at this index, so lets have our
@@ -440,7 +441,7 @@ ValueObjectSP ValueObject::GetChildMemberWithName(llvm::StringRef name,
return child_sp;
}
-uint32_t ValueObject::GetNumChildren(uint32_t max) {
+llvm::Expected<uint32_t> ValueObject::GetNumChildren(uint32_t max) {
UpdateValueIfNeeded();
if (max < UINT32_MAX) {
@@ -452,7 +453,11 @@ uint32_t ValueObject::GetNumChildren(uint32_t max) {
}
if (!m_flags.m_children_count_valid) {
- SetNumChildren(CalculateNumChildren());
+ auto num_children_or_err = CalculateNumChildren();
+ if (num_children_or_err)
+ SetNumChildren(*num_children_or_err);
+ else
+ return num_children_or_err;
}
return m_children.GetChildrenCount();
}
@@ -464,7 +469,8 @@ bool ValueObject::MightHaveChildren() {
if (type_info & (eTypeHasChildren | eTypeIsPointer | eTypeIsReference))
has_children = true;
} else {
- has_children = GetNumChildren() > 0;
+ has_children =
+ ValueOrLogV(GetLog(LLDBLog::DataFormatters), GetNumChildren(), 0u) > 0;
}
return has_children;
}
@@ -1176,7 +1182,8 @@ bool ValueObject::DumpPrintableRepresentation(
if (flags.Test(eTypeIsArray)) {
if ((custom_format == eFormatBytes) ||
(custom_format == eFormatBytesWithASCII)) {
- const size_t count = GetNumChildren();
+ const size_t count = ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ GetNumChildren(), 0u);
s << '[';
for (size_t low = 0; low < count; low++) {
@@ -1215,7 +1222,8 @@ bool ValueObject::DumpPrintableRepresentation(
// format should be printed
// directly
{
- const size_t count = GetNumChildren();
+ const size_t count = ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ GetNumChildren(), 0u);
Format format = FormatManager::GetSingleItemFormat(custom_format);
@@ -1294,7 +1302,9 @@ bool ValueObject::DumpPrintableRepresentation(
break;
case eValueObjectRepresentationStyleChildrenCount:
- strm.Printf("%" PRIu64 "", (uint64_t)GetNumChildren());
+ strm.Printf("%" PRIu64 "",
+ (uint64_t)ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ GetNumChildren(), 0u));
str = strm.GetString();
break;
@@ -2320,7 +2330,9 @@ ValueObjectSP ValueObject::GetValueForExpressionPath_Impl(
child_valobj_sp = root->GetSyntheticArrayMember(index, true);
if (!child_valobj_sp)
if (root->HasSyntheticValue() &&
- root->GetSyntheticValue()->GetNumChildren() > index)
+ llvm::expectedToStdOptional(
+ root->GetSyntheticValue()->GetNumChildren())
+ .value_or(0) > index)
child_valobj_sp =
root->GetSyntheticValue()->GetChildAtIndex(index);
if (child_valobj_sp) {
diff --git a/lldb/source/Core/ValueObjectCast.cpp b/lldb/source/Core/ValueObjectCast.cpp
index a5c555f86b1372..c8e31641514170 100644
--- a/lldb/source/Core/ValueObjectCast.cpp
+++ b/lldb/source/Core/ValueObjectCast.cpp
@@ -41,11 +41,13 @@ ValueObjectCast::~ValueObjectCast() = default;
CompilerType ValueObjectCast::GetCompilerTypeImpl() { return m_cast_type; }
-uint32_t ValueObjectCast::CalculateNumChildren(uint32_t max) {
+llvm::Expected<uint32_t> ValueObjectCast::CalculateNumChildren(uint32_t max) {
ExecutionContext exe_ctx(GetExecutionContextRef());
auto children_count = GetCompilerType().GetNumChildren(
true, &exe_ctx);
- return children_count <= max ? children_count : max;
+ if (!children_count)
+ return children_count;
+ return *children_count <= max ? *children_count : max;
}
std::optional<uint64_t> ValueObjectCast::GetByteSize() {
diff --git a/lldb/source/Core/ValueObjectChild.cpp b/lldb/source/Core/ValueObjectChild.cpp
index 2e55dd7726bdd9..c6a97dd1a5cd7e 100644
--- a/lldb/source/Core/ValueObjectChild.cpp
+++ b/lldb/source/Core/ValueObjectChild.cpp
@@ -49,10 +49,12 @@ lldb::ValueType ValueObjectChild::GetValueType() const {
return m_parent->GetValueType();
}
-uint32_t ValueObjectChild::CalculateNumChildren(uint32_t max) {
+llvm::Expected<uint32_t> ValueObjectChild::CalculateNumChildren(uint32_t max) {
ExecutionContext exe_ctx(GetExecutionContextRef());
auto children_count = GetCompilerType().GetNumChildren(true, &exe_ctx);
- return children_count <= max ? children_count : max;
+ if (!children_count)
+ return children_count;
+ return *children_count <= max ? *children_count : max;
}
static void AdjustForBitfieldness(ConstString &name,
diff --git a/lldb/source/Core/ValueObjectConstResult.cpp b/lldb/source/Core/ValueObjectConstResult.cpp
index 5c7aa4452b70db..8ac2c1cac2f665 100644
--- a/lldb/source/Core/ValueObjectConstResult.cpp
+++ b/lldb/source/Core/ValueObjectConstResult.cpp
@@ -216,10 +216,13 @@ std::optional<uint64_t> ValueObjectConstResult::GetByteSize() {
void ValueObjectConstResult::SetByteSize(size_t size) { m_byte_size = size; }
-uint32_t ValueObjectConstResult::CalculateNumChildren(uint32_t max) {
+llvm::Expected<uint32_t>
+ValueObjectConstResult::CalculateNumChildren(uint32_t max) {
ExecutionContext exe_ctx(GetExecutionContextRef());
auto children_count = GetCompilerType().GetNumChildren(true, &exe_ctx);
- return children_count <= max ? children_count : max;
+ if (!children_count)
+ return children_count;
+ return *children_count <= max ? *children_count : max;
}
ConstString ValueObjectConstResult::GetTypeName() {
diff --git a/lldb/source/Core/ValueObjectDynamicValue.cpp b/lldb/source/Core/ValueObjectDynamicValue.cpp
index 4e64760371ae52..4695febdf8ca12 100644
--- a/lldb/source/Core/ValueObjectDynamicValue.cpp
+++ b/lldb/source/Core/ValueObjectDynamicValue.cpp
@@ -85,12 +85,15 @@ ConstString ValueObjectDynamicValue::GetDisplayTypeName() {
return m_parent->GetDisplayTypeName();
}
-uint32_t ValueObjectDynamicValue::CalculateNumChildren(uint32_t max) {
+llvm::Expected<uint32_t>
+ValueObjectDynamicValue::CalculateNumChildren(uint32_t max) {
const bool success = UpdateValueIfNeeded(false);
if (success && m_dynamic_type_info.HasType()) {
ExecutionContext exe_ctx(GetExecutionContextRef());
auto children_count = GetCompilerType().GetNumChildren(true, &exe_ctx);
- return children_count <= max ? children_count : max;
+ if (!children_count)
+ return children_count;
+ return *children_count <= max ? *children_count : max;
} else
return m_parent->GetNumChildren(max);
}
diff --git a/lldb/source/Core/ValueObjectMemory.cpp b/lldb/source/Core/ValueObjectMemory.cpp
index 7f68236c7884ec..f555ab82f4418a 100644
--- a/lldb/source/Core/ValueObjectMemory.cpp
+++ b/lldb/source/Core/ValueObjectMemory.cpp
@@ -126,17 +126,21 @@ ConstString ValueObjectMemory::GetDisplayTypeName() {
return m_compiler_type.GetDisplayTypeName();
}
-uint32_t ValueObjectMemory::CalculateNumChildren(uint32_t max) {
+llvm::Expected<uint32_t> ValueObjectMemory::CalculateNumChildren(uint32_t max) {
if (m_type_sp) {
auto child_count = m_type_sp->GetNumChildren(true);
- return child_count <= max ? child_count : max;
+ if (!child_count)
+ return child_count;
+ return *child_count <= max ? *child_count : max;
}
ExecutionContext exe_ctx(GetExecutionContextRef());
const bool omit_empty_base_classes = true;
auto child_count =
m_compiler_type.GetNumChildren(omit_empty_base_classes, &exe_ctx);
- return child_count <= max ? child_count : max;
+ if (!child_count)
+ return child_count;
+ return *child_count <= max ? *child_count : max;
}
std::optional<uint64_t> ValueObjectMemory::GetByteSize() {
diff --git a/lldb/source/Core/ValueObjectRegister.cpp b/lldb/source/Core/ValueObjectRegister.cpp
index d4c144cc7edb9a..33963d2e6f4b66 100644
--- a/lldb/source/Core/ValueObjectRegister.cpp
+++ b/lldb/source/Core/ValueObjectRegister.cpp
@@ -74,7 +74,8 @@ ConstString ValueObjectRegisterSet::GetQualifiedTypeName() {
return ConstString();
}
-uint32_t ValueObjectRegisterSet::CalculateNumChildren(uint32_t max) {
+llvm::Expected<uint32_t>
+ValueObjectRegisterSet::CalculateNumChildren(uint32_t max) {
const RegisterSet *reg_set = m_reg_ctx_sp->GetRegisterSet(m_reg_set_idx);
if (reg_set) {
auto reg_count = reg_set->num_registers;
@@ -118,7 +119,8 @@ ValueObject *ValueObjectRegisterSet::CreateChildAtIndex(
size_t idx, bool synthetic_array_member, int32_t synthetic_index) {
ValueObject *valobj = nullptr;
if (m_reg_ctx_sp && m_reg_set) {
- const size_t num_children = GetNumChildren();
+ uint32_t num_children =
+ ValueOrLogV(GetLog(LLDBLog::Types), GetNumChildren(), 0u);
if (idx < num_children)
valobj = new ValueObjectRegister(
*this, m_reg_ctx_sp,
@@ -220,10 +222,13 @@ ConstString ValueObjectRegister::GetTypeName() {
return m_type_name;
}
-uint32_t ValueObjectRegister::CalculateNumChildren(uint32_t max) {
+llvm::Expected<uint32_t>
+ValueObjectRegister::CalculateNumChildren(uint32_t max) {
ExecutionContext exe_ctx(GetExecutionContextRef());
auto children_count = GetCompilerType().GetNumChildren(true, &exe_ctx);
- return children_count <= max ? children_count : max;
+ if (!children_count)
+ return children_count;
+ return *children_count <= max ? *children_count : max;
}
std::optional<uint64_t> ValueObjectRegister::GetByteSize() {
diff --git a/lldb/source/Core/ValueObjectSyntheticFilter.cpp b/lldb/source/Core/ValueObjectSyntheticFilter.cpp
index 7f8a9a34cb35df..faefedfe456b78 100644
--- a/lldb/source/Core/ValueObjectSyntheticFilter.cpp
+++ b/lldb/source/Core/ValueObjectSyntheticFilter.cpp
@@ -31,7 +31,9 @@ class DummySyntheticFrontEnd : public SyntheticChildrenFrontEnd {
DummySyntheticFrontEnd(ValueObject &backend)
: SyntheticChildrenFrontEnd(backend) {}
- uint32_t CalculateNumChildren() override { return m_backend.GetNumChildren(); }
+ llvm::Expected<uint32_t> CalculateNumChildren() override {
+ return m_backend.GetNumChildren();
+ }
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override {
return m_backend.GetChildAtIndex(idx);
@@ -84,7 +86,8 @@ ConstString ValueObjectSynthetic::GetDisplayTypeName() {
return m_parent->GetDisplayTypeName();
}
-uint32_t ValueObjectSynthetic::CalculateNumChildren(uint32_t max) {
+llvm::Expected<uint32_t>
+ValueObjectSynthetic::CalculateNumChildren(uint32_t max) {
Log *log = GetLog(LLDBLog::DataFormatters);
UpdateValueIfNeeded();
@@ -92,18 +95,21 @@ uint32_t ValueObjectSynthetic::CalculateNumChildren(uint32_t max) {
return m_synthetic_children_count <= max ? m_synthetic_children_count : max;
if (max < UINT32_MAX) {
- size_t num_children = m_synth_filter_up->CalculateNumChildren(max);
+ auto num_children = m_synth_filter_up->CalculateNumChildren(max);
LLDB_LOGF(log,
"[ValueObjectSynthetic::CalculateNumChildren] for VO of name "
- "%s and type %s, the filter returned %zu child values",
- GetName().AsCString(), GetTypeName().AsCString(), num_children);
+ "%s and type %s, the filter returned %u child values",
+ GetName().AsCString(), GetTypeName().AsCString(),
+ num_children ? *num_children : 0);
return num_children;
} else {
- size_t num_children = (m_synthetic_children_count =
- m_synth_filter_up->CalculateNumChildren(max));
+ // FIXME: this drops the error.
+ auto num_children = (m_synthetic_children_count = ValueOrLogV(
+ GetLog(LLDBLog::DataFormatters),
+ m_synth_filter_up->CalculateNumChildren(max), 0u));
LLDB_LOGF(log,
"[ValueObjectSynthetic::CalculateNumChildren] for VO of name "
- "%s and type %s, the filter returned %zu child values",
+ "%s and type %s, the filter returned %u child values",
GetName().AsCString(), GetTypeName().AsCString(), num_children);
return num_children;
}
diff --git a/lldb/source/Core/ValueObjectVTable.cpp b/lldb/source/Core/ValueObjectVTable.cpp
index 4d1cbb8d2f6fc2..9bfe8dc9700d30 100644
--- a/lldb/source/Core/ValueObjectVTable.cpp
+++ b/lldb/source/Core/ValueObjectVTable.cpp
@@ -33,7 +33,9 @@ class ValueObjectVTableChild : public ValueObject {
std::optional<uint64_t> GetByteSize() override { return m_addr_size; };
- uint32_t CalculateNumChildren(uint32_t max) override { return 0; };
+ llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override {
+ return 0;
+ };
ValueType GetValueType() const override { return eValueTypeVTableEntry; };
@@ -159,7 +161,7 @@ std::optional<uint64_t> ValueObjectVTable::GetByteSize() {
return std::nullopt;
}
-uint32_t ValueObjectVTable::CalculateNumChildren(uint32_t max) {
+llvm::Expected<uint32_t> ValueObjectVTable::CalculateNumChildren(uint32_t max) {
if (UpdateValueIfNeeded(false))
return m_num_vtable_entries <= max ? m_num_vtable_entries : max;
return 0;
diff --git a/lldb/source/Core/ValueObjectVariable.cpp b/lldb/source/Core/ValueObjectVariable.cpp
index dc62bb6358dc97..fb29c22c0ab5af 100644
--- a/lldb/source/Core/ValueObjectVariable.cpp
+++ b/lldb/source/Core/ValueObjectVariable.cpp
@@ -94,7 +94,8 @@ ConstString ValueObjectVariable::GetQualifiedTypeName() {
return ConstString();
}
-uint32_t ValueObjectVariable::CalculateNumChildren(uint32_t max) {
+llvm::Expected<uint32_t>
+ValueObjectVariable::CalculateNumChildren(uint32_t max) {
CompilerType type(GetCompilerType());
if (!type.IsValid())
@@ -103,7 +104,9 @@ uint32_t ValueObjectVariable::CalculateNumChildren(uint32_t max) {
ExecutionContext exe_ctx(GetExecutionContextRef());
const bool omit_empty_base_classes = true;
auto child_count = type.GetNumChildren(omit_empty_base_classes, &exe_ctx);
- return child_count <= max ? child_count : max;
+ if (!child_count)
+ return child_count;
+ return *child_count <= max ? *child_count : max;
}
std::optional<uint64_t> ValueObjectVariable::GetByteSize() {
diff --git a/lldb/source/DataFormatters/FormatManager.cpp b/lldb/source/DataFormatters/FormatManager.cpp
index 092fa3c8ce496d..8ff31e59bce746 100644
--- a/lldb/source/DataFormatters/FormatManager.cpp
+++ b/lldb/source/DataFormatters/FormatManager.cpp
@@ -451,8 +451,13 @@ bool FormatManager::ShouldPrintAsOneLiner(ValueObject &valobj) {
if (valobj.GetSummaryFormat().get() != nullptr)
return valobj.GetSummaryFormat()->IsOneLiner();
+ auto num_children = valobj.GetNumChildren();
+ if (!num_children) {
+ llvm::consumeError(num_children.takeError());
+ return true;
+ }
// no children, no party
- if (valobj.GetNumChildren() == 0)
+ if (*num_children == 0)
return false;
// ask the type if it has any opinion about this eLazyBoolCalculate == no
@@ -471,7 +476,7 @@ bool FormatManager::ShouldPrintAsOneLiner(ValueObject &valobj) {
size_t total_children_name_len = 0;
- for (size_t idx = 0; idx < valobj.GetNumChildren(); idx++) {
+ for (size_t idx = 0; idx < *num_children; idx++) {
bool is_synth_val = false;
ValueObjectSP child_sp(valobj.GetChildAtIndex(idx));
// something is wrong here - bail out
@@ -523,7 +528,8 @@ bool FormatManager::ShouldPrintAsOneLiner(ValueObject &valobj) {
}
// if this child has children..
- if (child_sp->GetNumChildren()) {
+ if (ValueOrLogV(GetLog(LLDBLog::DataFormatters), child_sp->GetNumChildren(),
+ 0u)) {
// ...and no summary...
// (if it had a summary and the summary wanted children, we would have
// bailed out anyway
diff --git a/lldb/source/DataFormatters/TypeSynthetic.cpp b/lldb/source/DataFormatters/TypeSynthetic.cpp
index 0ae38c4d31f26b..604a141057ad09 100644
--- a/lldb/source/DataFormatters/TypeSynthetic.cpp
+++ b/lldb/source/DataFormatters/TypeSynthetic.cpp
@@ -178,13 +178,15 @@ bool ScriptedSyntheticChildren::FrontEnd::IsValid() {
return (m_wrapper_sp && m_wrapper_sp->IsValid() && m_interpreter);
}
-uint32_t ScriptedSyntheticChildren::FrontEnd::CalculateNumChildren() {
+llvm::Expected<uint32_t>
+ScriptedSyntheticChildren::FrontEnd::CalculateNumChildren() {
if (!m_wrapper_sp || m_interpreter == nullptr)
return 0;
return m_interpreter->CalculateNumChildren(m_wrapper_sp, UINT32_MAX);
}
-uint32_t ScriptedSyntheticChildren::FrontEnd::CalculateNumChildren(uint32_t max) {
+llvm::Expected<uint32_t>
+ScriptedSyntheticChildren::FrontEnd::CalculateNumChildren(uint32_t max) {
if (!m_wrapper_sp || m_interpreter == nullptr)
return 0;
return m_interpreter->CalculateNumChildren(m_wrapper_sp, max);
diff --git a/lldb/source/DataFormatters/ValueObjectPrinter.cpp b/lldb/source/DataFormatters/ValueObjectPrinter.cpp
index 46e50a8d421a71..1c9d102648970e 100644
--- a/lldb/source/DataFormatters/ValueObjectPrinter.cpp
+++ b/lldb/source/DataFormatters/ValueObjectPrinter.cpp
@@ -627,7 +627,8 @@ uint32_t ValueObjectPrinter::GetMaxNumChildrenToPrint(bool &print_dotdotdot) {
if (m_options.m_pointer_as_array)
return m_options.m_pointer_as_array.m_element_count;
- size_t num_children = synth_valobj.GetNumChildren();
+ uint32_t num_children = ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ synth_valobj.GetNumChildren(), 0u);
print_dotdotdot = false;
if (num_children) {
const size_t max_num_children = GetMostSpecializedValue()
diff --git a/lldb/source/DataFormatters/VectorType.cpp b/lldb/source/DataFormatters/VectorType.cpp
index a0626a8cba7788..256aeb33eaab95 100644
--- a/lldb/source/DataFormatters/VectorType.cpp
+++ b/lldb/source/DataFormatters/VectorType.cpp
@@ -224,10 +224,13 @@ class VectorTypeSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~VectorTypeSyntheticFrontEnd() override = default;
- uint32_t CalculateNumChildren() override { return m_num_children; }
+ llvm::Expected<uint32_t> CalculateNumChildren() override {
+ return m_num_children;
+ }
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override {
- if (idx >= CalculateNumChildren())
+ if (idx >= ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ CalculateNumChildren(), 0u))
return {};
std::optional<uint64_t> size = m_child_type.GetByteSize(nullptr);
if (!size)
@@ -266,7 +269,8 @@ class VectorTypeSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
size_t GetIndexOfChildWithName(ConstString name) override {
const char *item_name = name.GetCString();
uint32_t idx = ExtractIndexFromString(item_name);
- if (idx < UINT32_MAX && idx >= CalculateNumChildren())
+ if (idx < UINT32_MAX && idx >= ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ CalculateNumChildren(), 0u))
return UINT32_MAX;
return idx;
}
@@ -293,7 +297,9 @@ bool lldb_private::formatters::VectorTypeSummaryProvider(
s.PutChar('(');
bool first = true;
- size_t idx = 0, len = synthetic_children->CalculateNumChildren();
+ size_t idx = 0,
+ len = ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ synthetic_children->CalculateNumChildren(), 0u);
for (; idx < len; idx++) {
auto child_sp = synthetic_children->GetChildAtIndex(idx);
diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp
index b48bbbecc0cd52..34d59878293fdd 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp
+++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp
@@ -229,7 +229,8 @@ void AddLambdaCaptureDecls(StreamString &stream, StackFrame *frame,
assert(frame);
if (auto thisValSP = ClangExpressionUtil::GetLambdaValueObject(frame)) {
- uint32_t numChildren = thisValSP->GetNumChildren();
+ uint32_t numChildren =
+ ValueOrLogV(GetLog(LLDBLog::Types), thisValSP->GetNumChildren(), 0u);
for (uint32_t i = 0; i < numChildren; ++i) {
auto childVal = thisValSP->GetChildAtIndex(i);
ConstString childName(childVal ? childVal->GetName() : ConstString(""));
diff --git a/lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp b/lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp
index 72293c5331f40d..d9b90ad068515d 100644
--- a/lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp
+++ b/lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp
@@ -27,6 +27,8 @@
#include "lldb/Target/StopInfo.h"
#include "lldb/Target/Target.h"
#include "lldb/Target/Thread.h"
+#include "lldb/Utility/LLDBLog.h"
+#include "lldb/Utility/Log.h"
#include "lldb/Utility/RegularExpression.h"
#include "lldb/Utility/Stream.h"
@@ -211,7 +213,8 @@ CreateStackTrace(ValueObjectSP o,
auto trace_sp = std::make_shared<StructuredData::Array>();
ValueObjectSP trace_value_object =
o->GetValueForExpressionPath(trace_item_name.c_str());
- size_t count = trace_value_object->GetNumChildren();
+ size_t count = ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ trace_value_object->GetNumChildren(), 0u);
for (size_t j = 0; j < count; j++) {
addr_t trace_addr =
trace_value_object->GetChildAtIndex(j)->GetValueAsUnsigned(0);
diff --git a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp
index ef0f67d1e9f9e7..7daf3696f90eb5 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp
@@ -74,7 +74,7 @@ class BlockPointerSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~BlockPointerSyntheticFrontEnd() override = default;
- uint32_t CalculateNumChildren() override {
+ llvm::Expected<uint32_t> CalculateNumChildren() override {
const bool omit_empty_base_classes = false;
return m_block_struct_type.GetNumChildren(omit_empty_base_classes, nullptr);
}
@@ -84,7 +84,8 @@ class BlockPointerSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
return lldb::ValueObjectSP();
}
- if (idx >= CalculateNumChildren()) {
+ if (idx >= ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ CalculateNumChildren(), 0u)) {
return lldb::ValueObjectSP();
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp
index 3827f9c21effab..bc2e398351915e 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp
@@ -11,6 +11,8 @@
#include "Plugins/TypeSystem/Clang/TypeSystemClang.h"
#include "lldb/Symbol/Function.h"
#include "lldb/Symbol/VariableList.h"
+#include "lldb/Utility/LLDBLog.h"
+#include "lldb/Utility/Log.h"
using namespace lldb;
using namespace lldb_private;
@@ -22,7 +24,8 @@ static lldb::addr_t GetCoroFramePtrFromHandle(ValueObjectSP valobj_sp) {
// We expect a single pointer in the `coroutine_handle` class.
// We don't care about its name.
- if (valobj_sp->GetNumChildren() != 1)
+ if (ValueOrLogV(GetLog(LLDBLog::DataFormatters), valobj_sp->GetNumChildren(),
+ 0u) != 1)
return LLDB_INVALID_ADDRESS;
ValueObjectSP ptr_sp(valobj_sp->GetChildAtIndex(0));
if (!ptr_sp)
@@ -104,8 +107,8 @@ lldb_private::formatters::StdlibCoroutineHandleSyntheticFrontEnd::
lldb_private::formatters::StdlibCoroutineHandleSyntheticFrontEnd::
~StdlibCoroutineHandleSyntheticFrontEnd() = default;
-uint32_t lldb_private::formatters::StdlibCoroutineHandleSyntheticFrontEnd::
- CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::
+ StdlibCoroutineHandleSyntheticFrontEnd::CalculateNumChildren() {
if (!m_resume_ptr_sp || !m_destroy_ptr_sp)
return 0;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.h b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.h
index 5c6a80b57ff424..1d4bc65e26374f 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.h
+++ b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.h
@@ -34,7 +34,7 @@ class StdlibCoroutineHandleSyntheticFrontEnd
~StdlibCoroutineHandleSyntheticFrontEnd() override;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp
index 6a9da1d17c7620..33955dccb6ccc3 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp
@@ -34,7 +34,9 @@ class GenericBitsetFrontEnd : public SyntheticChildrenFrontEnd {
bool MightHaveChildren() override { return true; }
lldb::ChildCacheState Update() override;
- uint32_t CalculateNumChildren() override { return m_elements.size(); }
+ llvm::Expected<uint32_t> CalculateNumChildren() override {
+ return m_elements.size();
+ }
ValueObjectSP GetChildAtIndex(uint32_t idx) override;
private:
diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp
index c06afb53eb8aad..78b0441030492d 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp
@@ -18,8 +18,10 @@ using namespace lldb_private;
bool lldb_private::formatters::GenericOptionalSummaryProvider(
ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options) {
- stream.Printf(" Has Value=%s ",
- valobj.GetNumChildren() == 0 ? "false" : "true");
+ stream.Printf(" Has Value=%s ", ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ valobj.GetNumChildren(), 0u) == 0
+ ? "false"
+ : "true");
return true;
}
@@ -41,7 +43,9 @@ class GenericOptionalFrontend : public SyntheticChildrenFrontEnd {
}
bool MightHaveChildren() override { return true; }
- uint32_t CalculateNumChildren() override { return m_has_value ? 1U : 0U; }
+ llvm::Expected<uint32_t> CalculateNumChildren() override {
+ return m_has_value ? 1U : 0U;
+ }
ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
index bba887fec3ac3f..3c1b77083f1044 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
@@ -63,7 +63,8 @@ lldb::ValueObjectSP
lldb_private::formatters::GetSecondValueOfLibCXXCompressedPair(
ValueObject &pair) {
ValueObjectSP value;
- if (pair.GetNumChildren() > 1) {
+ if (ValueOrLogV(GetLog(LLDBLog::DataFormatters), pair.GetNumChildren(), 0u) >
+ 1) {
ValueObjectSP second_child = pair.GetChildAtIndex(1);
if (second_child) {
value = second_child->GetChildMemberWithName("__value_");
@@ -351,8 +352,8 @@ lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd::Update() {
return lldb::ChildCacheState::eRefetch;
}
-uint32_t lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd::
- CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::
+ LibCxxMapIteratorSyntheticFrontEnd::CalculateNumChildren() {
return 2;
}
@@ -509,8 +510,8 @@ lldb::ChildCacheState lldb_private::formatters::
return lldb::ChildCacheState::eRefetch;
}
-uint32_t lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd::
- CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::
+ LibCxxUnorderedMapIteratorSyntheticFrontEnd::CalculateNumChildren() {
return 2;
}
@@ -566,8 +567,8 @@ lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd::
Update();
}
-uint32_t lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd::
- CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::
+ LibcxxSharedPtrSyntheticFrontEnd::CalculateNumChildren() {
return (m_cntrl ? 1 : 0);
}
@@ -661,8 +662,8 @@ lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEndCreator(
: nullptr);
}
-uint32_t lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEnd::
- CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::
+ LibcxxUniquePtrSyntheticFrontEnd::CalculateNumChildren() {
if (m_value_ptr_sp)
return m_deleter_sp ? 2 : 1;
return 0;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h
index ad2f58508ab7b6..a59f21841ec890 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h
@@ -87,7 +87,7 @@ class LibCxxMapIteratorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
LibCxxMapIteratorSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -135,7 +135,7 @@ class LibCxxUnorderedMapIteratorSyntheticFrontEnd
~LibCxxUnorderedMapIteratorSyntheticFrontEnd() override = default;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -166,7 +166,7 @@ class LibcxxSharedPtrSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
LibcxxSharedPtrSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -186,7 +186,7 @@ class LibcxxUniquePtrSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
LibcxxUniquePtrSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp
index 8e4c36103a744d..7f30dc186291e9 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp
@@ -90,7 +90,7 @@ class LibcxxStdAtomicSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~LibcxxStdAtomicSyntheticFrontEnd() override = default;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -124,8 +124,8 @@ bool lldb_private::formatters::LibcxxStdAtomicSyntheticFrontEnd::
return true;
}
-uint32_t lldb_private::formatters::LibcxxStdAtomicSyntheticFrontEnd::
- CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::
+ LibcxxStdAtomicSyntheticFrontEnd::CalculateNumChildren() {
return m_real_child ? 1 : 0;
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp
index 00012dfc056e47..bd9c72497664a0 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp
@@ -26,7 +26,7 @@ class LibcxxInitializerListSyntheticFrontEnd
~LibcxxInitializerListSyntheticFrontEnd() override;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -59,8 +59,8 @@ lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd::
// delete m_start;
}
-uint32_t lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd::
- CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::
+ LibcxxInitializerListSyntheticFrontEnd::CalculateNumChildren() {
m_num_elements = 0;
ValueObjectSP size_sp(m_backend.GetChildMemberWithName("__size_"));
if (size_sp)
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp
index 17f6b737d9f628..d35bc2fa104898 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp
@@ -136,7 +136,7 @@ class ForwardListFrontEnd : public AbstractListFrontEnd {
public:
ForwardListFrontEnd(ValueObject &valobj);
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
};
@@ -147,7 +147,7 @@ class ListFrontEnd : public AbstractListFrontEnd {
~ListFrontEnd() override = default;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -240,7 +240,7 @@ ForwardListFrontEnd::ForwardListFrontEnd(ValueObject &valobj)
Update();
}
-uint32_t ForwardListFrontEnd::CalculateNumChildren() {
+llvm::Expected<uint32_t> ForwardListFrontEnd::CalculateNumChildren() {
if (m_count != UINT32_MAX)
return m_count;
@@ -254,7 +254,8 @@ uint32_t ForwardListFrontEnd::CalculateNumChildren() {
}
ValueObjectSP ForwardListFrontEnd::GetChildAtIndex(uint32_t idx) {
- if (idx >= CalculateNumChildren())
+ if (idx >=
+ ValueOrLogV(GetLog(LLDBLog::DataFormatters), CalculateNumChildren(), 0u))
return nullptr;
if (!m_head)
@@ -308,7 +309,7 @@ ListFrontEnd::ListFrontEnd(lldb::ValueObjectSP valobj_sp)
Update();
}
-uint32_t ListFrontEnd::CalculateNumChildren() {
+llvm::Expected<uint32_t> ListFrontEnd::CalculateNumChildren() {
if (m_count != UINT32_MAX)
return m_count;
if (!m_head || !m_tail || m_node_address == 0)
@@ -347,7 +348,8 @@ lldb::ValueObjectSP ListFrontEnd::GetChildAtIndex(uint32_t idx) {
static ConstString g_value("__value_");
static ConstString g_next("__next_");
- if (idx >= CalculateNumChildren())
+ if (idx >=
+ ValueOrLogV(GetLog(LLDBLog::DataFormatters), CalculateNumChildren(), 0u))
return lldb::ValueObjectSP();
if (!m_head || !m_tail || m_node_address == 0)
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
index 6d24eb03779ca3..f8a7a601bcd777 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
@@ -177,7 +177,7 @@ class LibcxxStdMapSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~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,14 @@ 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 =
+ ValueOrLogV(GetLog(LLDBLog::DataFormatters), CalculateNumChildren(), 0u);
+ 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 +383,8 @@ 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 (ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ potential_child_sp->GetNumChildren(), 0u)) {
case 1: {
auto child0_sp = potential_child_sp->GetChildAtIndex(0);
if (child0_sp &&
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp
index fbadee89b7b7f2..5b459a17fe29ba 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp
@@ -28,7 +28,7 @@ class QueueFrontEnd : public SyntheticChildrenFrontEnd {
bool MightHaveChildren() override { return true; }
lldb::ChildCacheState Update() override;
- uint32_t CalculateNumChildren() override {
+ llvm::Expected<uint32_t> CalculateNumChildren() override {
return m_container_sp ? m_container_sp->GetNumChildren() : 0;
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxRangesRefView.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxRangesRefView.cpp
index 74f54f76735667..01a7b8f142ecb9 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxRangesRefView.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxRangesRefView.cpp
@@ -27,7 +27,7 @@ class LibcxxStdRangesRefViewSyntheticFrontEnd
~LibcxxStdRangesRefViewSyntheticFrontEnd() override = default;
- uint32_t CalculateNumChildren() override {
+ llvm::Expected<uint32_t> CalculateNumChildren() override {
// __range_ will be the sole child of this type
return 1;
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp
index af2b51d2b54016..9895f336bfd020 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp
@@ -27,7 +27,7 @@ class LibcxxStdSpanSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~LibcxxStdSpanSyntheticFrontEnd() override = default;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -73,8 +73,8 @@ lldb_private::formatters::LibcxxStdSpanSyntheticFrontEnd::
Update();
}
-uint32_t lldb_private::formatters::LibcxxStdSpanSyntheticFrontEnd::
- CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::
+ LibcxxStdSpanSyntheticFrontEnd::CalculateNumChildren() {
return m_num_elements;
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp
index 62bb7d619267a3..3e3259ab428df3 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp
@@ -26,7 +26,9 @@ class TupleFrontEnd: public SyntheticChildrenFrontEnd {
bool MightHaveChildren() override { return true; }
lldb::ChildCacheState Update() override;
- uint32_t CalculateNumChildren() override { return m_elements.size(); }
+ llvm::Expected<uint32_t> CalculateNumChildren() override {
+ return m_elements.size();
+ }
ValueObjectSP GetChildAtIndex(uint32_t idx) override;
private:
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
index b3c36429433570..290dc1ad194d3f 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
@@ -33,7 +33,7 @@ class LibcxxStdUnorderedMapSyntheticFrontEnd
~LibcxxStdUnorderedMapSyntheticFrontEnd() override = default;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -62,8 +62,8 @@ lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEnd::
Update();
}
-uint32_t lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEnd::
- CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::
+ LibcxxStdUnorderedMapSyntheticFrontEnd::CalculateNumChildren() {
return m_num_elements;
}
@@ -94,7 +94,8 @@ static bool isUnorderedMap(ConstString type_name) {
lldb::ValueObjectSP lldb_private::formatters::
LibcxxStdUnorderedMapSyntheticFrontEnd::GetChildAtIndex(uint32_t idx) {
- if (idx >= CalculateNumChildren())
+ if (idx >=
+ ValueOrLogV(GetLog(LLDBLog::DataFormatters), CalculateNumChildren(), 0u))
return lldb::ValueObjectSP();
if (m_tree == nullptr)
return lldb::ValueObjectSP();
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp
index 463c7b8d7ce3bb..99f94406e99a6a 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp
@@ -24,7 +24,7 @@ class LibcxxStdValarraySyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~LibcxxStdValarraySyntheticFrontEnd() override;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -63,8 +63,8 @@ lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd::
// delete m_finish;
}
-uint32_t lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd::
- CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::
+ LibcxxStdValarraySyntheticFrontEnd::CalculateNumChildren() {
if (!m_start || !m_finish)
return 0;
uint64_t start_val = m_start->GetValueAsUnsigned(0);
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp
index 1f62062f09be30..62794318e0777c 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp
@@ -205,7 +205,7 @@ class VariantFrontEnd : public SyntheticChildrenFrontEnd {
bool MightHaveChildren() override { return true; }
lldb::ChildCacheState Update() override;
- uint32_t CalculateNumChildren() override { return m_size; }
+ llvm::Expected<uint32_t> CalculateNumChildren() override { return m_size; }
ValueObjectSP GetChildAtIndex(uint32_t idx) override;
private:
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp
index fcf727ad2ea027..8944519500c209 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp
@@ -25,7 +25,7 @@ class LibcxxStdVectorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~LibcxxStdVectorSyntheticFrontEnd() override;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -46,7 +46,7 @@ class LibcxxVectorBoolSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
LibcxxVectorBoolSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -82,8 +82,8 @@ lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd::
// delete m_finish;
}
-uint32_t lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd::
- CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::
+ LibcxxStdVectorSyntheticFrontEnd::CalculateNumChildren() {
if (!m_start || !m_finish)
return 0;
uint64_t start_val = m_start->GetValueAsUnsigned(0);
@@ -165,8 +165,8 @@ lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd::
}
}
-uint32_t lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd::
- CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::
+ LibcxxVectorBoolSyntheticFrontEnd::CalculateNumChildren() {
return m_count;
}
@@ -259,7 +259,8 @@ size_t lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEnd::
return UINT32_MAX;
const char *item_name = name.GetCString();
uint32_t idx = ExtractIndexFromString(item_name);
- if (idx < UINT32_MAX && idx >= CalculateNumChildren())
+ if (idx < UINT32_MAX && idx >= ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ CalculateNumChildren(), 0u))
return UINT32_MAX;
return idx;
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
index 5abb3d50674bc5..86bb575af5ca34 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
@@ -43,7 +43,7 @@ class LibstdcppMapIteratorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
explicit LibstdcppMapIteratorSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -64,7 +64,7 @@ class LibStdcppSharedPtrSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
explicit LibStdcppSharedPtrSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -132,7 +132,8 @@ lldb::ChildCacheState LibstdcppMapIteratorSyntheticFrontEnd::Update() {
return lldb::ChildCacheState::eReuse;
}
-uint32_t LibstdcppMapIteratorSyntheticFrontEnd::CalculateNumChildren() {
+llvm::Expected<uint32_t>
+LibstdcppMapIteratorSyntheticFrontEnd::CalculateNumChildren() {
return 2;
}
@@ -219,7 +220,10 @@ lldb::ChildCacheState VectorIteratorSyntheticFrontEnd::Update() {
return lldb::ChildCacheState::eRefetch;
}
-uint32_t VectorIteratorSyntheticFrontEnd::CalculateNumChildren() { return 1; }
+llvm::Expected<uint32_t>
+VectorIteratorSyntheticFrontEnd::CalculateNumChildren() {
+ return 1;
+}
lldb::ValueObjectSP
VectorIteratorSyntheticFrontEnd::GetChildAtIndex(uint32_t idx) {
@@ -371,7 +375,10 @@ LibStdcppSharedPtrSyntheticFrontEnd::LibStdcppSharedPtrSyntheticFrontEnd(
Update();
}
-uint32_t LibStdcppSharedPtrSyntheticFrontEnd::CalculateNumChildren() { return 1; }
+llvm::Expected<uint32_t>
+LibStdcppSharedPtrSyntheticFrontEnd::CalculateNumChildren() {
+ return 1;
+}
lldb::ValueObjectSP
LibStdcppSharedPtrSyntheticFrontEnd::GetChildAtIndex(uint32_t idx) {
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp
index 64d2ec9d943a2a..97356338e2295b 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp
@@ -26,7 +26,7 @@ class LibStdcppTupleSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
explicit LibStdcppTupleSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -65,7 +65,8 @@ lldb::ChildCacheState LibStdcppTupleSyntheticFrontEnd::Update() {
ValueObjectSP current_child = next_child_sp;
next_child_sp = nullptr;
- size_t child_count = current_child->GetNumChildren();
+ size_t child_count = ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ current_child->GetNumChildren(), 0u);
for (size_t i = 0; i < child_count; ++i) {
ValueObjectSP child_sp = current_child->GetChildAtIndex(i);
llvm::StringRef name_str = child_sp->GetName().GetStringRef();
@@ -95,7 +96,8 @@ LibStdcppTupleSyntheticFrontEnd::GetChildAtIndex(uint32_t idx) {
return lldb::ValueObjectSP();
}
-uint32_t LibStdcppTupleSyntheticFrontEnd::CalculateNumChildren() {
+llvm::Expected<uint32_t>
+LibStdcppTupleSyntheticFrontEnd::CalculateNumChildren() {
return m_members.size();
}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp
index 3a48fe412e0721..92f540d9ca5233 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp
@@ -26,7 +26,7 @@ class LibStdcppUniquePtrSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
explicit LibStdcppUniquePtrSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -135,7 +135,8 @@ LibStdcppUniquePtrSyntheticFrontEnd::GetChildAtIndex(uint32_t idx) {
return lldb::ValueObjectSP();
}
-uint32_t LibStdcppUniquePtrSyntheticFrontEnd::CalculateNumChildren() {
+llvm::Expected<uint32_t>
+LibStdcppUniquePtrSyntheticFrontEnd::CalculateNumChildren() {
if (m_del_obj)
return 2;
return 1;
diff --git a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
index cb740f8e71e168..96166657ceeb62 100644
--- a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
+++ b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
@@ -1038,7 +1038,7 @@ class ObjCClassSyntheticChildrenFrontEnd : public SyntheticChildrenFrontEnd {
~ObjCClassSyntheticChildrenFrontEnd() override = default;
- uint32_t CalculateNumChildren() override { return 0; }
+ llvm::Expected<uint32_t> CalculateNumChildren() override { return 0; }
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override {
return lldb::ValueObjectSP();
diff --git a/lldb/source/Plugins/Language/ObjC/NSArray.cpp b/lldb/source/Plugins/Language/ObjC/NSArray.cpp
index 7f060b2613d6f3..a1c6d5fb926d28 100644
--- a/lldb/source/Plugins/Language/ObjC/NSArray.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSArray.cpp
@@ -50,7 +50,7 @@ class NSArrayMSyntheticFrontEndBase : public SyntheticChildrenFrontEnd {
~NSArrayMSyntheticFrontEndBase() override = default;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -214,7 +214,7 @@ class GenericNSArrayISyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~GenericNSArrayISyntheticFrontEnd() override;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -302,7 +302,7 @@ class NSArray0SyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~NSArray0SyntheticFrontEnd() override = default;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -319,7 +319,7 @@ class NSArray1SyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~NSArray1SyntheticFrontEnd() override = default;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -477,15 +477,16 @@ lldb_private::formatters::
: NSArrayMSyntheticFrontEndBase(valobj_sp), m_data_32(nullptr),
m_data_64(nullptr) {}
-uint32_t lldb_private::formatters::NSArrayMSyntheticFrontEndBase::
- CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::
+ NSArrayMSyntheticFrontEndBase::CalculateNumChildren() {
return GetUsedCount();
}
lldb::ValueObjectSP
lldb_private::formatters::NSArrayMSyntheticFrontEndBase::GetChildAtIndex(
uint32_t idx) {
- if (idx >= CalculateNumChildren())
+ if (idx >=
+ ValueOrLogV(GetLog(LLDBLog::DataFormatters), CalculateNumChildren(), 0u))
return lldb::ValueObjectSP();
lldb::addr_t object_at_idx = GetDataAddress();
size_t pyhs_idx = idx;
@@ -542,7 +543,8 @@ lldb_private::formatters::NSArrayMSyntheticFrontEndBase::GetIndexOfChildWithName
ConstString name) {
const char *item_name = name.GetCString();
uint32_t idx = ExtractIndexFromString(item_name);
- if (idx < UINT32_MAX && idx >= CalculateNumChildren())
+ if (idx < UINT32_MAX && idx >= ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ CalculateNumChildren(), 0u))
return UINT32_MAX;
return idx;
}
@@ -628,15 +630,16 @@ lldb_private::formatters::GenericNSArrayISyntheticFrontEnd<D32, D64, Inline>::
GetIndexOfChildWithName(ConstString name) {
const char *item_name = name.GetCString();
uint32_t idx = ExtractIndexFromString(item_name);
- if (idx < UINT32_MAX && idx >= CalculateNumChildren())
+ if (idx < UINT32_MAX && idx >= ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ CalculateNumChildren(), 0u))
return UINT32_MAX;
return idx;
}
template <typename D32, typename D64, bool Inline>
-uint32_t
-lldb_private::formatters::GenericNSArrayISyntheticFrontEnd<D32, D64, Inline>::
- CalculateNumChildren() {
+llvm::Expected<uint32_t>
+lldb_private::formatters::GenericNSArrayISyntheticFrontEnd<
+ D32, D64, Inline>::CalculateNumChildren() {
return m_data_32 ? m_data_32->used : m_data_64->used;
}
@@ -685,7 +688,8 @@ template <typename D32, typename D64, bool Inline>
lldb::ValueObjectSP
lldb_private::formatters::GenericNSArrayISyntheticFrontEnd<D32, D64, Inline>::
GetChildAtIndex(uint32_t idx) {
- if (idx >= CalculateNumChildren())
+ if (idx >=
+ ValueOrLogV(GetLog(LLDBLog::DataFormatters), CalculateNumChildren(), 0u))
return lldb::ValueObjectSP();
lldb::addr_t object_at_idx;
if (Inline) {
@@ -719,7 +723,7 @@ lldb_private::formatters::NSArray0SyntheticFrontEnd::GetIndexOfChildWithName(
return UINT32_MAX;
}
-uint32_t
+llvm::Expected<uint32_t>
lldb_private::formatters::NSArray0SyntheticFrontEnd::CalculateNumChildren() {
return 0;
}
@@ -754,7 +758,7 @@ lldb_private::formatters::NSArray1SyntheticFrontEnd::GetIndexOfChildWithName(
return UINT32_MAX;
}
-uint32_t
+llvm::Expected<uint32_t>
lldb_private::formatters::NSArray1SyntheticFrontEnd::CalculateNumChildren() {
return 1;
}
diff --git a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
index da94eda1529ce1..9874f4d901f4a2 100644
--- a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
@@ -103,7 +103,7 @@ class NSDictionaryISyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~NSDictionaryISyntheticFrontEnd() override;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -144,7 +144,7 @@ class NSConstantDictionarySyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
NSConstantDictionarySyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -176,7 +176,7 @@ class NSCFDictionarySyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
NSCFDictionarySyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -209,7 +209,7 @@ class NSDictionary1SyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~NSDictionary1SyntheticFrontEnd() override = default;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -230,7 +230,7 @@ class GenericNSDictionaryMSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~GenericNSDictionaryMSyntheticFrontEnd() override;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -262,9 +262,9 @@ namespace Foundation1100 {
NSDictionaryMSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
~NSDictionaryMSyntheticFrontEnd() override;
-
- uint32_t CalculateNumChildren() override;
-
+
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
+
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
lldb::ChildCacheState Update() override;
@@ -601,13 +601,14 @@ size_t lldb_private::formatters::NSDictionaryISyntheticFrontEnd::
GetIndexOfChildWithName(ConstString name) {
const char *item_name = name.GetCString();
uint32_t idx = ExtractIndexFromString(item_name);
- if (idx < UINT32_MAX && idx >= CalculateNumChildren())
+ if (idx < UINT32_MAX && idx >= ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ CalculateNumChildren(), 0u))
return UINT32_MAX;
return idx;
}
-uint32_t lldb_private::formatters::NSDictionaryISyntheticFrontEnd::
- CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::
+ NSDictionaryISyntheticFrontEnd::CalculateNumChildren() {
if (!m_data_32 && !m_data_64)
return 0;
return (m_data_32 ? m_data_32->_used : m_data_64->_used);
@@ -656,7 +657,8 @@ bool lldb_private::formatters::NSDictionaryISyntheticFrontEnd::
lldb::ValueObjectSP
lldb_private::formatters::NSDictionaryISyntheticFrontEnd::GetChildAtIndex(
uint32_t idx) {
- uint32_t num_children = CalculateNumChildren();
+ uint32_t num_children =
+ ValueOrLogV(GetLog(LLDBLog::DataFormatters), CalculateNumChildren(), 0u);
if (idx >= num_children)
return lldb::ValueObjectSP();
@@ -739,13 +741,14 @@ size_t lldb_private::formatters::NSCFDictionarySyntheticFrontEnd::
GetIndexOfChildWithName(ConstString name) {
const char *item_name = name.GetCString();
const uint32_t idx = ExtractIndexFromString(item_name);
- if (idx < UINT32_MAX && idx >= CalculateNumChildren())
+ if (idx < UINT32_MAX && idx >= ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ CalculateNumChildren(), 0u))
return UINT32_MAX;
return idx;
}
-uint32_t lldb_private::formatters::NSCFDictionarySyntheticFrontEnd::
- CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::
+ NSCFDictionarySyntheticFrontEnd::CalculateNumChildren() {
if (!m_hashtable.IsValid())
return 0;
return m_hashtable.GetCount();
@@ -781,7 +784,8 @@ lldb_private::formatters::NSCFDictionarySyntheticFrontEnd::GetChildAtIndex(
lldb::addr_t m_keys_ptr = m_hashtable.GetKeyPointer();
lldb::addr_t m_values_ptr = m_hashtable.GetValuePointer();
- const uint32_t num_children = CalculateNumChildren();
+ const uint32_t num_children =
+ ValueOrLogV(GetLog(LLDBLog::DataFormatters), CalculateNumChildren(), 0u);
if (idx >= num_children)
return lldb::ValueObjectSP();
@@ -875,13 +879,14 @@ size_t lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd::
GetIndexOfChildWithName(ConstString name) {
const char *item_name = name.GetCString();
uint32_t idx = ExtractIndexFromString(item_name);
- if (idx < UINT32_MAX && idx >= CalculateNumChildren())
+ if (idx < UINT32_MAX && idx >= ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ CalculateNumChildren(), 0u))
return UINT32_MAX;
return idx;
}
-uint32_t lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd::
- CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::
+ NSConstantDictionarySyntheticFrontEnd::CalculateNumChildren() {
return m_size;
}
@@ -921,7 +926,8 @@ bool lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd::
lldb::ValueObjectSP lldb_private::formatters::
NSConstantDictionarySyntheticFrontEnd::GetChildAtIndex(uint32_t idx) {
- uint32_t num_children = CalculateNumChildren();
+ uint32_t num_children =
+ ValueOrLogV(GetLog(LLDBLog::DataFormatters), CalculateNumChildren(), 0u);
if (idx >= num_children)
return lldb::ValueObjectSP();
@@ -994,8 +1000,8 @@ size_t lldb_private::formatters::NSDictionary1SyntheticFrontEnd::
return name == g_zero ? 0 : UINT32_MAX;
}
-uint32_t lldb_private::formatters::NSDictionary1SyntheticFrontEnd::
- CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::
+ NSDictionary1SyntheticFrontEnd::CalculateNumChildren() {
return 1;
}
@@ -1081,17 +1087,19 @@ size_t lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd<
D32, D64>::GetIndexOfChildWithName(ConstString name) {
const char *item_name = name.GetCString();
uint32_t idx = ExtractIndexFromString(item_name);
- if (idx < UINT32_MAX && idx >= CalculateNumChildren())
+ if (idx < UINT32_MAX && idx >= ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ CalculateNumChildren(), 0u))
return UINT32_MAX;
return idx;
}
template <typename D32, typename D64>
-uint32_t
-lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd<D32,D64>::CalculateNumChildren() {
+llvm::Expected<uint32_t>
+lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd<
+ D32, D64>::CalculateNumChildren() {
if (!m_data_32 && !m_data_64)
return 0;
- return (m_data_32 ? m_data_32->_used : m_data_64->_used);
+ return (m_data_32 ? (uint32_t)m_data_32->_used : (uint32_t)m_data_64->_used);
}
template <typename D32, typename D64>
@@ -1153,7 +1161,8 @@ lldb_private::formatters::GenericNSDictionaryMSyntheticFrontEnd<
m_values_ptr = m_data_64->_buffer + (m_ptr_size * size);
}
- uint32_t num_children = CalculateNumChildren();
+ uint32_t num_children =
+ ValueOrLogV(GetLog(LLDBLog::DataFormatters), CalculateNumChildren(), 0u);
if (idx >= num_children)
return lldb::ValueObjectSP();
@@ -1245,14 +1254,14 @@ lldb_private::formatters::Foundation1100::
NSDictionaryMSyntheticFrontEnd::GetIndexOfChildWithName(ConstString name) {
const char *item_name = name.GetCString();
uint32_t idx = ExtractIndexFromString(item_name);
- if (idx < UINT32_MAX && idx >= CalculateNumChildren())
+ if (idx < UINT32_MAX && idx >= ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ CalculateNumChildren(), 0u))
return UINT32_MAX;
return idx;
}
-uint32_t
-lldb_private::formatters::Foundation1100::
- NSDictionaryMSyntheticFrontEnd::CalculateNumChildren() {
+llvm::Expected<uint32_t> lldb_private::formatters::Foundation1100::
+ NSDictionaryMSyntheticFrontEnd::CalculateNumChildren() {
if (!m_data_32 && !m_data_64)
return 0;
return (m_data_32 ? m_data_32->_used : m_data_64->_used);
@@ -1306,7 +1315,8 @@ lldb_private::formatters::Foundation1100::
lldb::addr_t m_values_ptr =
(m_data_32 ? m_data_32->_objs_addr : m_data_64->_objs_addr);
- uint32_t num_children = CalculateNumChildren();
+ uint32_t num_children =
+ ValueOrLogV(GetLog(LLDBLog::DataFormatters), CalculateNumChildren(), 0u);
if (idx >= num_children)
return lldb::ValueObjectSP();
diff --git a/lldb/source/Plugins/Language/ObjC/NSError.cpp b/lldb/source/Plugins/Language/ObjC/NSError.cpp
index b034e799b716e7..5ef7edc7e80c1a 100644
--- a/lldb/source/Plugins/Language/ObjC/NSError.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSError.cpp
@@ -116,7 +116,7 @@ class NSErrorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
// no need to delete m_child_ptr - it's kept alive by the cluster manager on
// our behalf
- uint32_t CalculateNumChildren() override {
+ llvm::Expected<uint32_t> CalculateNumChildren() override {
if (m_child_ptr)
return 1;
if (m_child_sp)
diff --git a/lldb/source/Plugins/Language/ObjC/NSException.cpp b/lldb/source/Plugins/Language/ObjC/NSException.cpp
index 09d3a1b42b747f..e7ce26ea4c6f50 100644
--- a/lldb/source/Plugins/Language/ObjC/NSException.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSException.cpp
@@ -123,9 +123,7 @@ class NSExceptionSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~NSExceptionSyntheticFrontEnd() override = default;
- uint32_t CalculateNumChildren() override {
- return 4;
- }
+ llvm::Expected<uint32_t> CalculateNumChildren() override { return 4; }
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override {
switch (idx) {
diff --git a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
index 10bb907c58ed42..a2627553e521e2 100644
--- a/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
@@ -40,7 +40,9 @@ class NSIndexPathSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~NSIndexPathSyntheticFrontEnd() override = default;
- uint32_t CalculateNumChildren() override { return m_impl.GetNumIndexes(); }
+ llvm::Expected<uint32_t> CalculateNumChildren() override {
+ return m_impl.GetNumIndexes();
+ }
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override {
return m_impl.GetIndexAtIndex(idx, m_uint_star_type);
@@ -127,7 +129,8 @@ class NSIndexPathSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
size_t GetIndexOfChildWithName(ConstString name) override {
const char *item_name = name.GetCString();
uint32_t idx = ExtractIndexFromString(item_name);
- if (idx < UINT32_MAX && idx >= CalculateNumChildren())
+ if (idx < UINT32_MAX && idx >= ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ CalculateNumChildren(), 0u))
return UINT32_MAX;
return idx;
}
diff --git a/lldb/source/Plugins/Language/ObjC/NSSet.cpp b/lldb/source/Plugins/Language/ObjC/NSSet.cpp
index c965a2a1340030..70f507ecf3d0b2 100644
--- a/lldb/source/Plugins/Language/ObjC/NSSet.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSSet.cpp
@@ -46,7 +46,7 @@ class NSSetISyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~NSSetISyntheticFrontEnd() override;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -84,7 +84,7 @@ class NSCFSetSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
NSCFSetSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -117,7 +117,7 @@ class GenericNSSetMSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~GenericNSSetMSyntheticFrontEnd() override;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -233,7 +233,7 @@ class NSSetCodeRunningSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
~NSSetCodeRunningSyntheticFrontEnd() override;
- uint32_t CalculateNumChildren() override;
+ llvm::Expected<uint32_t> CalculateNumChildren() override;
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
@@ -414,12 +414,13 @@ lldb_private::formatters::NSSetISyntheticFrontEnd::GetIndexOfChildWithName(
ConstString name) {
const char *item_name = name.GetCString();
uint32_t idx = ExtractIndexFromString(item_name);
- if (idx < UINT32_MAX && idx >= CalculateNumChildren())
+ if (idx < UINT32_MAX && idx >= ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ CalculateNumChildren(), 0u))
return UINT32_MAX;
return idx;
}
-uint32_t
+llvm::Expected<uint32_t>
lldb_private::formatters::NSSetISyntheticFrontEnd::CalculateNumChildren() {
if (!m_data_32 && !m_data_64)
return 0;
@@ -468,7 +469,8 @@ bool lldb_private::formatters::NSSetISyntheticFrontEnd::MightHaveChildren() {
lldb::ValueObjectSP
lldb_private::formatters::NSSetISyntheticFrontEnd::GetChildAtIndex(
uint32_t idx) {
- uint32_t num_children = CalculateNumChildren();
+ uint32_t num_children =
+ ValueOrLogV(GetLog(LLDBLog::DataFormatters), CalculateNumChildren(), 0u);
if (idx >= num_children)
return lldb::ValueObjectSP();
@@ -551,12 +553,13 @@ lldb_private::formatters::NSCFSetSyntheticFrontEnd::GetIndexOfChildWithName(
ConstString name) {
const char *item_name = name.GetCString();
const uint32_t idx = ExtractIndexFromString(item_name);
- if (idx < UINT32_MAX && idx >= CalculateNumChildren())
+ if (idx < UINT32_MAX && idx >= ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ CalculateNumChildren(), 0u))
return UINT32_MAX;
return idx;
}
-uint32_t
+llvm::Expected<uint32_t>
lldb_private::formatters::NSCFSetSyntheticFrontEnd::CalculateNumChildren() {
if (!m_hashtable.IsValid())
return 0;
@@ -591,7 +594,8 @@ lldb_private::formatters::NSCFSetSyntheticFrontEnd::GetChildAtIndex(
uint32_t idx) {
lldb::addr_t m_values_ptr = m_hashtable.GetValuePointer();
- const uint32_t num_children = CalculateNumChildren();
+ const uint32_t num_children =
+ ValueOrLogV(GetLog(LLDBLog::DataFormatters), CalculateNumChildren(), 0u);
if (idx >= num_children)
return lldb::ValueObjectSP();
@@ -691,18 +695,19 @@ lldb_private::formatters::
ConstString name) {
const char *item_name = name.GetCString();
uint32_t idx = ExtractIndexFromString(item_name);
- if (idx < UINT32_MAX && idx >= CalculateNumChildren())
+ if (idx < UINT32_MAX && idx >= ValueOrLogV(GetLog(LLDBLog::DataFormatters),
+ CalculateNumChildren(), 0u))
return UINT32_MAX;
return idx;
}
template <typename D32, typename D64>
-uint32_t
-lldb_private::formatters::
- GenericNSSetMSyntheticFrontEnd<D32, D64>::CalculateNumChildren() {
+llvm::Expected<uint32_t>
+lldb_private::formatters::GenericNSSetMSyntheticFrontEnd<
+ D32, D64>::CalculateNumChildren() {
if (!m_data_32 && !m_data_64)
return 0;
- return (m_data_32 ? m_data_32->_used : m_data_64->_used);
+ return (m_data_32 ? (uint32_t)m_data_32->_used : (uint32_t)m_data_64->_used);
}
template <typename D32, typename D64>
@@ -753,7 +758,8 @@ lldb_private::formatters::
lldb::addr_t m_objs_addr =
(m_data_32 ? m_data_32->_objs_addr : m_data_64->_objs_addr);
- uint32_t num_children = CalculateNumChildren();
+ uint32_t num_children =
+ ValueOrLogV(GetLog(LLDBLog::DataFormatters), CalculateNumChildren(), 0u);
if (idx >= num_children)
return lldb::ValueObjectSP();
diff --git a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
index f08f9f0f815d0c..503e4df60b58fd 100644
--- a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
+++ b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
@@ -539,7 +539,9 @@ ThreadSP AppleObjCRuntime::GetBacktraceThreadFromException(
return object;
};
- for (size_t idx = 0; idx < reserved_dict->GetNumChildren(); idx++) {
+ for (size_t idx = 0; idx < ValueOrLogV(GetLog(LLDBLog::Types),
+ reserved_dict->GetNumChildren(), 0u);
+ idx++) {
ValueObjectSP dict_entry = reserved_dict->GetChildAtIndex(idx);
DataExtractor data;
diff --git a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
index 51ab13108feb3a..3a09452131b2c1 100644
--- a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
+++ b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
@@ -5263,9 +5263,10 @@ GetDynamicArrayInfo(TypeSystemClang &ast, SymbolFile *sym_file,
return std::nullopt;
}
-uint32_t TypeSystemClang::GetNumChildren(lldb::opaque_compiler_type_t type,
- bool omit_empty_base_classes,
- const ExecutionContext *exe_ctx) {
+llvm::Expected<uint32_t>
+TypeSystemClang::GetNumChildren(lldb::opaque_compiler_type_t type,
+ bool omit_empty_base_classes,
+ const ExecutionContext *exe_ctx) {
if (!type)
return 0;
@@ -5362,8 +5363,10 @@ uint32_t TypeSystemClang::GetNumChildren(lldb::opaque_compiler_type_t type,
uint32_t num_pointee_children = 0;
if (pointee_clang_type.IsAggregateType())
- num_pointee_children =
- pointee_clang_type.GetNumChildren(omit_empty_base_classes, exe_ctx);
+ num_pointee_children = ValueOrLogV(
+ GetLog(LLDBLog::Types),
+ pointee_clang_type.GetNumChildren(omit_empty_base_classes, exe_ctx),
+ 0u);
// If this type points to a simple type, then it has 1 child
if (num_pointee_children == 0)
num_children = 1;
@@ -5398,8 +5401,10 @@ uint32_t TypeSystemClang::GetNumChildren(lldb::opaque_compiler_type_t type,
CompilerType pointee_clang_type(GetType(pointee_type));
uint32_t num_pointee_children = 0;
if (pointee_clang_type.IsAggregateType())
- num_pointee_children =
- pointee_clang_type.GetNumChildren(omit_empty_base_classes, exe_ctx);
+ num_pointee_children = ValueOrLogV(
+ GetLog(LLDBLog::Types),
+ pointee_clang_type.GetNumChildren(omit_empty_base_classes, exe_ctx),
+ 0u);
if (num_pointee_children == 0) {
// We have a pointer to a pointee type that claims it has no children. We
// will want to look at
@@ -6109,7 +6114,9 @@ CompilerType TypeSystemClang::GetChildCompilerTypeAtIndex(
language_flags = 0;
const bool idx_is_valid =
- idx < GetNumChildren(type, omit_empty_base_classes, exe_ctx);
+ idx < ValueOrLogV(GetLog(LLDBLog::Types),
+ GetNumChildren(type, omit_empty_base_classes, exe_ctx),
+ 0u);
int32_t bit_offset;
switch (parent_type_class) {
case clang::Type::Builtin:
@@ -6265,8 +6272,10 @@ CompilerType TypeSystemClang::GetChildCompilerTypeAtIndex(
CompilerType base_class_clang_type =
GetType(getASTContext().getObjCInterfaceType(
superclass_interface_decl));
- if (base_class_clang_type.GetNumChildren(omit_empty_base_classes,
- exe_ctx) > 0) {
+ if (ValueOrLogV(GetLog(LLDBLog::Types),
+ base_class_clang_type.GetNumChildren(
+ omit_empty_base_classes, exe_ctx),
+ 0u) > 0) {
if (idx == 0) {
clang::QualType ivar_qual_type(
getASTContext().getObjCInterfaceType(
diff --git a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
index a73164895baa80..05c303baa41640 100644
--- a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
+++ b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
@@ -833,9 +833,10 @@ class TypeSystemClang : public TypeSystem {
GetTypeBitAlign(lldb::opaque_compiler_type_t type,
ExecutionContextScope *exe_scope) override;
- uint32_t GetNumChildren(lldb::opaque_compiler_type_t type,
- bool omit_empty_base_classes,
- const ExecutionContext *exe_ctx) override;
+ llvm::Expected<uint32_t>
+ GetNumChildren(lldb::opaque_compiler_type_t type,
+ bool omit_empty_base_classes,
+ const ExecutionContext *exe_ctx) override;
CompilerType GetBuiltinTypeByName(ConstString name) override;
diff --git a/lldb/source/Symbol/CompilerType.cpp b/lldb/source/Symbol/CompilerType.cpp
index 76b79daa6ac154..85dd2d841a5a0c 100644
--- a/lldb/source/Symbol/CompilerType.cpp
+++ b/lldb/source/Symbol/CompilerType.cpp
@@ -770,8 +770,9 @@ lldb::Format CompilerType::GetFormat() const {
return lldb::eFormatDefault;
}
-uint32_t CompilerType::GetNumChildren(bool omit_empty_base_classes,
- const ExecutionContext *exe_ctx) const {
+llvm::Expected<uint32_t>
+CompilerType::GetNumChildren(bool omit_empty_base_classes,
+ const ExecutionContext *exe_ctx) const {
if (IsValid())
if (auto type_system_sp = GetTypeSystem())
return type_system_sp->GetNumChildren(m_type, omit_empty_base_classes,
diff --git a/lldb/source/Symbol/Type.cpp b/lldb/source/Symbol/Type.cpp
index 6069d066eaf66b..44a24d7178f562 100644
--- a/lldb/source/Symbol/Type.cpp
+++ b/lldb/source/Symbol/Type.cpp
@@ -488,7 +488,7 @@ std::optional<uint64_t> Type::GetByteSize(ExecutionContextScope *exe_scope) {
return {};
}
-uint32_t Type::GetNumChildren(bool omit_empty_base_classes) {
+llvm::Expected<uint32_t> Type::GetNumChildren(bool omit_empty_base_classes) {
return GetForwardCompilerType().GetNumChildren(omit_empty_base_classes, nullptr);
}
diff --git a/lldb/source/Symbol/Variable.cpp b/lldb/source/Symbol/Variable.cpp
index a33c3433d9e245..8f7b512b104eee 100644
--- a/lldb/source/Symbol/Variable.cpp
+++ b/lldb/source/Symbol/Variable.cpp
@@ -27,6 +27,8 @@
#include "lldb/Target/StackFrame.h"
#include "lldb/Target/Target.h"
#include "lldb/Target/Thread.h"
+#include "lldb/Utility/LLDBLog.h"
+#include "lldb/Utility/Log.h"
#include "lldb/Utility/RegularExpression.h"
#include "lldb/Utility/Stream.h"
@@ -568,7 +570,10 @@ static void PrivateAutoComplete(
case eTypeClassObjCObjectPointer:
case eTypeClassPointer: {
bool omit_empty_base_classes = true;
- if (compiler_type.GetNumChildren(omit_empty_base_classes, nullptr) > 0)
+ if (ValueOrLogV(
+ GetLog(LLDBLog::DataFormatters),
+ compiler_type.GetNumChildren(omit_empty_base_classes, nullptr),
+ 0u))
request.AddCompletion((prefix_path + "->").str());
else {
request.AddCompletion(prefix_path.str());
diff --git a/lldb/source/Target/StackFrame.cpp b/lldb/source/Target/StackFrame.cpp
index 50cf01e63cd493..9a05f0c3deeb7a 100644
--- a/lldb/source/Target/StackFrame.cpp
+++ b/lldb/source/Target/StackFrame.cpp
@@ -857,10 +857,10 @@ ValueObjectSP StackFrame::GetValueForVariableExpressionPath(
"\"(%s) %s\" is not an array type",
valobj_sp->GetTypeName().AsCString("<invalid type>"),
var_expr_path_strm.GetData());
- } else if (
- static_cast<uint32_t>(child_index) >=
- synthetic
- ->GetNumChildren() /* synthetic does not have that many values */) {
+ } else if (static_cast<uint32_t>(child_index) >=
+ ValueOrLogV(
+ GetLog(LLDBLog::Types), synthetic->GetNumChildren(),
+ 0u) /* synthetic does not have that many values */) {
valobj_sp->GetExpressionPath(var_expr_path_strm);
error.SetErrorStringWithFormat(
"array index %ld is not valid for \"(%s) %s\"", child_index,
@@ -929,10 +929,10 @@ ValueObjectSP StackFrame::GetValueForVariableExpressionPath(
"\"(%s) %s\" is not an array type",
valobj_sp->GetTypeName().AsCString("<invalid type>"),
var_expr_path_strm.GetData());
- } else if (
- static_cast<uint32_t>(child_index) >=
- synthetic
- ->GetNumChildren() /* synthetic does not have that many values */) {
+ } else if (static_cast<uint32_t>(child_index) >=
+ ValueOrLogV(
+ GetLog(LLDBLog::Types), synthetic->GetNumChildren(),
+ 0u) /* synthetic does not have that many values */) {
valobj_sp->GetExpressionPath(var_expr_path_strm);
error.SetErrorStringWithFormat(
"array index %ld is not valid for \"(%s) %s\"", child_index,
@@ -1397,7 +1397,9 @@ ValueObjectSP GetValueForOffset(StackFrame &frame, ValueObjectSP &parent,
return parent;
}
- for (int ci = 0, ce = parent->GetNumChildren(); ci != ce; ++ci) {
+ for (int ci = 0, ce = ValueOrLogV(GetLog(LLDBLog::Types),
+ parent->GetNumChildren(), 0u);
+ ci != ce; ++ci) {
ValueObjectSP child_sp = parent->GetChildAtIndex(ci);
if (!child_sp) {
More information about the lldb-commits
mailing list