Skip to content

Commit 300a39b

Browse files
committed
Revert "Change GetNumChildren()/CalculateNumChildren() methods return llvm::Expected (#84219)"
This reverts commit 99118c8.
1 parent 0861755 commit 300a39b

File tree

72 files changed

+247
-394
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+247
-394
lines changed

lldb/include/lldb/Core/ValueObject.h

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -476,13 +476,7 @@ class ValueObject {
476476

477477
virtual size_t GetIndexOfChildWithName(llvm::StringRef name);
478478

479-
llvm::Expected<uint32_t> GetNumChildren(uint32_t max = UINT32_MAX);
480-
/// Like \c GetNumChildren but returns 0 on error. You probably
481-
/// shouldn't be using this function. It exists primarily to ease the
482-
/// transition to more pervasive error handling while not all APIs
483-
/// have been updated.
484-
uint32_t GetNumChildrenIgnoringErrors(uint32_t max = UINT32_MAX);
485-
bool HasChildren() { return GetNumChildrenIgnoringErrors() > 0; }
479+
uint32_t GetNumChildren(uint32_t max = UINT32_MAX);
486480

487481
const Value &GetValue() const { return m_value; }
488482

@@ -964,8 +958,7 @@ class ValueObject {
964958
int32_t synthetic_index);
965959

966960
/// Should only be called by ValueObject::GetNumChildren().
967-
virtual llvm::Expected<uint32_t>
968-
CalculateNumChildren(uint32_t max = UINT32_MAX) = 0;
961+
virtual uint32_t CalculateNumChildren(uint32_t max = UINT32_MAX) = 0;
969962

970963
void SetNumChildren(uint32_t num_children);
971964

lldb/include/lldb/Core/ValueObjectCast.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class ValueObjectCast : public ValueObject {
3333

3434
std::optional<uint64_t> GetByteSize() override;
3535

36-
llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
36+
uint32_t CalculateNumChildren(uint32_t max) override;
3737

3838
lldb::ValueType GetValueType() const override;
3939

lldb/include/lldb/Core/ValueObjectChild.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class ValueObjectChild : public ValueObject {
3939

4040
lldb::ValueType GetValueType() const override;
4141

42-
llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
42+
uint32_t CalculateNumChildren(uint32_t max) override;
4343

4444
ConstString GetTypeName() override;
4545

lldb/include/lldb/Core/ValueObjectConstResult.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class ValueObjectConstResult : public ValueObject {
6767

6868
lldb::ValueType GetValueType() const override;
6969

70-
llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
70+
uint32_t CalculateNumChildren(uint32_t max) override;
7171

7272
ConstString GetTypeName() override;
7373

lldb/include/lldb/Core/ValueObjectDynamicValue.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class ValueObjectDynamicValue : public ValueObject {
4343

4444
ConstString GetDisplayTypeName() override;
4545

46-
llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
46+
uint32_t CalculateNumChildren(uint32_t max) override;
4747

4848
lldb::ValueType GetValueType() const override;
4949

lldb/include/lldb/Core/ValueObjectMemory.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class ValueObjectMemory : public ValueObject {
4747

4848
ConstString GetDisplayTypeName() override;
4949

50-
llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
50+
uint32_t CalculateNumChildren(uint32_t max) override;
5151

5252
lldb::ValueType GetValueType() const override;
5353

lldb/include/lldb/Core/ValueObjectRegister.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class ValueObjectRegisterSet : public ValueObject {
4747

4848
ConstString GetQualifiedTypeName() override;
4949

50-
llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
50+
uint32_t CalculateNumChildren(uint32_t max) override;
5151

5252
ValueObject *CreateChildAtIndex(size_t idx, bool synthetic_array_member,
5353
int32_t synthetic_index) override;
@@ -95,7 +95,7 @@ class ValueObjectRegister : public ValueObject {
9595

9696
ConstString GetTypeName() override;
9797

98-
llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
98+
uint32_t CalculateNumChildren(uint32_t max) override;
9999

100100
bool SetValueFromCString(const char *value_str, Status &error) override;
101101

lldb/include/lldb/Core/ValueObjectSyntheticFilter.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class ValueObjectSynthetic : public ValueObject {
4747

4848
bool MightHaveChildren() override;
4949

50-
llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
50+
uint32_t CalculateNumChildren(uint32_t max) override;
5151

5252
lldb::ValueType GetValueType() const override;
5353

lldb/include/lldb/Core/ValueObjectVTable.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ class ValueObjectVTable : public ValueObject {
6464

6565
std::optional<uint64_t> GetByteSize() override;
6666

67-
llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
67+
uint32_t CalculateNumChildren(uint32_t max) override;
6868

6969
ValueObject *CreateChildAtIndex(size_t idx, bool synthetic_array_member,
7070
int32_t synthetic_index) override;

lldb/include/lldb/Core/ValueObjectVariable.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class ValueObjectVariable : public ValueObject {
4646

4747
ConstString GetDisplayTypeName() override;
4848

49-
llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
49+
uint32_t CalculateNumChildren(uint32_t max) override;
5050

5151
lldb::ValueType GetValueType() const override;
5252

lldb/include/lldb/DataFormatters/TypeSynthetic.h

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -38,17 +38,13 @@ class SyntheticChildrenFrontEnd {
3838

3939
virtual ~SyntheticChildrenFrontEnd() = default;
4040

41-
virtual llvm::Expected<uint32_t> CalculateNumChildren() = 0;
41+
virtual uint32_t CalculateNumChildren() = 0;
4242

43-
virtual llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) {
43+
virtual uint32_t CalculateNumChildren(uint32_t max) {
4444
auto count = CalculateNumChildren();
45-
if (!count)
46-
return count;
47-
return *count <= max ? *count : max;
45+
return count <= max ? count : max;
4846
}
4947

50-
uint32_t CalculateNumChildrenIgnoringErrors(uint32_t max = UINT32_MAX);
51-
5248
virtual lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) = 0;
5349

5450
virtual size_t GetIndexOfChildWithName(ConstString name) = 0;
@@ -113,7 +109,7 @@ class SyntheticValueProviderFrontEnd : public SyntheticChildrenFrontEnd {
113109

114110
~SyntheticValueProviderFrontEnd() override = default;
115111

116-
llvm::Expected<uint32_t> CalculateNumChildren() override { return 0; }
112+
uint32_t CalculateNumChildren() override { return 0; }
117113

118114
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override { return nullptr; }
119115

@@ -326,9 +322,7 @@ class TypeFilterImpl : public SyntheticChildren {
326322

327323
~FrontEnd() override = default;
328324

329-
llvm::Expected<uint32_t> CalculateNumChildren() override {
330-
return filter->GetCount();
331-
}
325+
uint32_t CalculateNumChildren() override { return filter->GetCount(); }
332326

333327
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override {
334328
if (idx >= filter->GetCount())
@@ -432,9 +426,9 @@ class ScriptedSyntheticChildren : public SyntheticChildren {
432426

433427
bool IsValid();
434428

435-
llvm::Expected<uint32_t> CalculateNumChildren() override;
429+
uint32_t CalculateNumChildren() override;
436430

437-
llvm::Expected<uint32_t> CalculateNumChildren(uint32_t max) override;
431+
uint32_t CalculateNumChildren(uint32_t max) override;
438432

439433
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
440434

lldb/include/lldb/DataFormatters/VectorIterator.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class VectorIteratorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
2424
VectorIteratorSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp,
2525
llvm::ArrayRef<ConstString> item_names);
2626

27-
llvm::Expected<uint32_t> CalculateNumChildren() override;
27+
uint32_t CalculateNumChildren() override;
2828

2929
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override;
3030

lldb/include/lldb/Symbol/CompilerType.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -386,9 +386,8 @@ class CompilerType {
386386

387387
std::optional<size_t> GetTypeBitAlign(ExecutionContextScope *exe_scope) const;
388388

389-
llvm::Expected<uint32_t>
390-
GetNumChildren(bool omit_empty_base_classes,
391-
const ExecutionContext *exe_ctx) const;
389+
uint32_t GetNumChildren(bool omit_empty_base_classes,
390+
const ExecutionContext *exe_ctx) const;
392391

393392
lldb::BasicType GetBasicTypeEnumeration() const;
394393

lldb/include/lldb/Symbol/Type.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ class Type : public std::enable_shared_from_this<Type>, public UserID {
440440

441441
std::optional<uint64_t> GetByteSize(ExecutionContextScope *exe_scope);
442442

443-
llvm::Expected<uint32_t> GetNumChildren(bool omit_empty_base_classes);
443+
uint32_t GetNumChildren(bool omit_empty_base_classes);
444444

445445
bool IsAggregateType();
446446

lldb/include/lldb/Symbol/TypeSystem.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -300,10 +300,9 @@ class TypeSystem : public PluginInterface,
300300

301301
virtual lldb::Format GetFormat(lldb::opaque_compiler_type_t type) = 0;
302302

303-
virtual llvm::Expected<uint32_t>
304-
GetNumChildren(lldb::opaque_compiler_type_t type,
305-
bool omit_empty_base_classes,
306-
const ExecutionContext *exe_ctx) = 0;
303+
virtual uint32_t GetNumChildren(lldb::opaque_compiler_type_t type,
304+
bool omit_empty_base_classes,
305+
const ExecutionContext *exe_ctx) = 0;
307306

308307
virtual CompilerType GetBuiltinTypeByName(ConstString name);
309308

lldb/include/lldb/Target/StackFrameRecognizer.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,7 @@ class ValueObjectRecognizerSynthesizedValue : public ValueObject {
164164
m_value = m_parent->GetValue();
165165
return true;
166166
}
167-
llvm::Expected<uint32_t>
168-
CalculateNumChildren(uint32_t max = UINT32_MAX) override {
167+
uint32_t CalculateNumChildren(uint32_t max = UINT32_MAX) override {
169168
return m_parent->GetNumChildren(max);
170169
}
171170
CompilerType GetCompilerTypeImpl() override {

lldb/include/lldb/Utility/Log.h

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -373,18 +373,4 @@ template <typename Cat> Log *GetLog(Cat mask) {
373373
::llvm::consumeError(::std::move(error_private)); \
374374
} while (0)
375375

376-
// Write message to the verbose log, if error is set. In the log
377-
// message refer to the error with {0}. Error is cleared regardless of
378-
// whether logging is enabled.
379-
#define LLDB_LOG_ERRORV(log, error, ...) \
380-
do { \
381-
::lldb_private::Log *log_private = (log); \
382-
::llvm::Error error_private = (error); \
383-
if (log_private && log_private->GetVerbose() && error_private) { \
384-
log_private->FormatError(::std::move(error_private), __FILE__, __func__, \
385-
__VA_ARGS__); \
386-
} else \
387-
::llvm::consumeError(::std::move(error_private)); \
388-
} while (0)
389-
390376
#endif // LLDB_UTILITY_LOG_H

lldb/source/API/SBValue.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -947,7 +947,7 @@ uint32_t SBValue::GetNumChildren(uint32_t max) {
947947
ValueLocker locker;
948948
lldb::ValueObjectSP value_sp(GetSP(locker));
949949
if (value_sp)
950-
num_children = value_sp->GetNumChildrenIgnoringErrors(max);
950+
num_children = value_sp->GetNumChildren(max);
951951

952952
return num_children;
953953
}

lldb/source/Core/FormatEntity.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -926,7 +926,7 @@ static bool DumpValue(Stream &s, const SymbolContext *sc,
926926
s.PutChar('[');
927927

928928
if (index_higher < 0)
929-
index_higher = valobj->GetNumChildrenIgnoringErrors() - 1;
929+
index_higher = valobj->GetNumChildren() - 1;
930930

931931
uint32_t max_num_children =
932932
target->GetTargetSP()->GetMaximumNumberOfChildrenToDisplay();

lldb/source/Core/IOHandlerCursesGUI.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4519,7 +4519,7 @@ struct Row {
45194519
calculated_children = true;
45204520
ValueObjectSP valobj = value.GetSP();
45214521
if (valobj) {
4522-
const uint32_t num_children = valobj->GetNumChildrenIgnoringErrors();
4522+
const size_t num_children = valobj->GetNumChildren();
45234523
for (size_t i = 0; i < num_children; ++i) {
45244524
children.push_back(Row(valobj->GetChildAtIndex(i), this));
45254525
}

lldb/source/Core/ValueObject.cpp

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ ValueObjectSP ValueObject::GetChildAtIndex(uint32_t idx, bool can_create) {
377377
// We may need to update our value if we are dynamic
378378
if (IsPossibleDynamicType())
379379
UpdateValueIfNeeded(false);
380-
if (idx < GetNumChildrenIgnoringErrors()) {
380+
if (idx < GetNumChildren()) {
381381
// Check if we have already made the child value object?
382382
if (can_create && !m_children.HasChildAtIndex(idx)) {
383383
// No we haven't created the child at this index, so lets have our
@@ -440,7 +440,7 @@ ValueObjectSP ValueObject::GetChildMemberWithName(llvm::StringRef name,
440440
return child_sp;
441441
}
442442

443-
llvm::Expected<uint32_t> ValueObject::GetNumChildren(uint32_t max) {
443+
uint32_t ValueObject::GetNumChildren(uint32_t max) {
444444
UpdateValueIfNeeded();
445445

446446
if (max < UINT32_MAX) {
@@ -452,32 +452,19 @@ llvm::Expected<uint32_t> ValueObject::GetNumChildren(uint32_t max) {
452452
}
453453

454454
if (!m_flags.m_children_count_valid) {
455-
auto num_children_or_err = CalculateNumChildren();
456-
if (num_children_or_err)
457-
SetNumChildren(*num_children_or_err);
458-
else
459-
return num_children_or_err;
455+
SetNumChildren(CalculateNumChildren());
460456
}
461457
return m_children.GetChildrenCount();
462458
}
463459

464-
uint32_t ValueObject::GetNumChildrenIgnoringErrors(uint32_t max) {
465-
auto value_or_err = GetNumChildren(max);
466-
if (value_or_err)
467-
return *value_or_err;
468-
LLDB_LOG_ERRORV(GetLog(LLDBLog::DataFormatters), value_or_err.takeError(),
469-
"{0}");
470-
return 0;
471-
}
472-
473460
bool ValueObject::MightHaveChildren() {
474461
bool has_children = false;
475462
const uint32_t type_info = GetTypeInfo();
476463
if (type_info) {
477464
if (type_info & (eTypeHasChildren | eTypeIsPointer | eTypeIsReference))
478465
has_children = true;
479466
} else {
480-
has_children = GetNumChildrenIgnoringErrors() > 0;
467+
has_children = GetNumChildren() > 0;
481468
}
482469
return has_children;
483470
}
@@ -1189,7 +1176,7 @@ bool ValueObject::DumpPrintableRepresentation(
11891176
if (flags.Test(eTypeIsArray)) {
11901177
if ((custom_format == eFormatBytes) ||
11911178
(custom_format == eFormatBytesWithASCII)) {
1192-
const size_t count = GetNumChildrenIgnoringErrors();
1179+
const size_t count = GetNumChildren();
11931180

11941181
s << '[';
11951182
for (size_t low = 0; low < count; low++) {
@@ -1228,7 +1215,7 @@ bool ValueObject::DumpPrintableRepresentation(
12281215
// format should be printed
12291216
// directly
12301217
{
1231-
const size_t count = GetNumChildrenIgnoringErrors();
1218+
const size_t count = GetNumChildren();
12321219

12331220
Format format = FormatManager::GetSingleItemFormat(custom_format);
12341221

@@ -1307,7 +1294,7 @@ bool ValueObject::DumpPrintableRepresentation(
13071294
break;
13081295

13091296
case eValueObjectRepresentationStyleChildrenCount:
1310-
strm.Printf("%" PRIu64 "", (uint64_t)GetNumChildrenIgnoringErrors());
1297+
strm.Printf("%" PRIu64 "", (uint64_t)GetNumChildren());
13111298
str = strm.GetString();
13121299
break;
13131300

@@ -2333,9 +2320,7 @@ ValueObjectSP ValueObject::GetValueForExpressionPath_Impl(
23332320
child_valobj_sp = root->GetSyntheticArrayMember(index, true);
23342321
if (!child_valobj_sp)
23352322
if (root->HasSyntheticValue() &&
2336-
llvm::expectedToStdOptional(
2337-
root->GetSyntheticValue()->GetNumChildren())
2338-
.value_or(0) > index)
2323+
root->GetSyntheticValue()->GetNumChildren() > index)
23392324
child_valobj_sp =
23402325
root->GetSyntheticValue()->GetChildAtIndex(index);
23412326
if (child_valobj_sp) {

lldb/source/Core/ValueObjectCast.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,11 @@ ValueObjectCast::~ValueObjectCast() = default;
4141

4242
CompilerType ValueObjectCast::GetCompilerTypeImpl() { return m_cast_type; }
4343

44-
llvm::Expected<uint32_t> ValueObjectCast::CalculateNumChildren(uint32_t max) {
44+
uint32_t ValueObjectCast::CalculateNumChildren(uint32_t max) {
4545
ExecutionContext exe_ctx(GetExecutionContextRef());
4646
auto children_count = GetCompilerType().GetNumChildren(
4747
true, &exe_ctx);
48-
if (!children_count)
49-
return children_count;
50-
return *children_count <= max ? *children_count : max;
48+
return children_count <= max ? children_count : max;
5149
}
5250

5351
std::optional<uint64_t> ValueObjectCast::GetByteSize() {

lldb/source/Core/ValueObjectChild.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,10 @@ lldb::ValueType ValueObjectChild::GetValueType() const {
4949
return m_parent->GetValueType();
5050
}
5151

52-
llvm::Expected<uint32_t> ValueObjectChild::CalculateNumChildren(uint32_t max) {
52+
uint32_t ValueObjectChild::CalculateNumChildren(uint32_t max) {
5353
ExecutionContext exe_ctx(GetExecutionContextRef());
5454
auto children_count = GetCompilerType().GetNumChildren(true, &exe_ctx);
55-
if (!children_count)
56-
return children_count;
57-
return *children_count <= max ? *children_count : max;
55+
return children_count <= max ? children_count : max;
5856
}
5957

6058
static void AdjustForBitfieldness(ConstString &name,

0 commit comments

Comments
 (0)