Skip to content

Commit 6fde8fe

Browse files
authored
[lldb] Provide default impl for MightHaveChildren (NFC) (#119977)
The vast majority of `SyntheticChildrenFrontEnd` subclasses provide children, and as such implement `MightHaveChildren` with a constant value of `true`. This change makes `true` the default value. With this change, `MightHaveChildren` only needs to be implemented by synthetic providers that can return `false`, which is only 3 subclasses.
1 parent f0e39c4 commit 6fde8fe

32 files changed

+2
-244
lines changed

Diff for: lldb/include/lldb/DataFormatters/TypeSynthetic.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ class SyntheticChildrenFrontEnd {
6868
// a false return value from this call if it returns true, then
6969
// CalculateNumChildren() can return any number >= 0 (0 being valid) it
7070
// should if at all possible be more efficient than CalculateNumChildren()
71-
virtual bool MightHaveChildren() = 0;
71+
virtual bool MightHaveChildren() { return true; }
7272

7373
// if this function returns a non-null ValueObject, then the returned
7474
// ValueObject will stand for this ValueObject whenever a "value" request is

Diff for: lldb/include/lldb/DataFormatters/VectorIterator.h

-2
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ class VectorIteratorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
3030

3131
lldb::ChildCacheState Update() override;
3232

33-
bool MightHaveChildren() override;
34-
3533
size_t GetIndexOfChildWithName(ConstString name) override;
3634

3735
private:

Diff for: lldb/source/DataFormatters/VectorType.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -268,8 +268,6 @@ class VectorTypeSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
268268
return lldb::ChildCacheState::eRefetch;
269269
}
270270

271-
bool MightHaveChildren() override { return true; }
272-
273271
size_t GetIndexOfChildWithName(ConstString name) override {
274272
const char *item_name = name.GetCString();
275273
uint32_t idx = ExtractIndexFromString(item_name);

Diff for: lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp

-3
Original file line numberDiff line numberDiff line change
@@ -144,9 +144,6 @@ class BlockPointerSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
144144
return lldb::ChildCacheState::eRefetch;
145145
}
146146

147-
// maybe return false if the block pointer is, say, null
148-
bool MightHaveChildren() override { return true; }
149-
150147
size_t GetIndexOfChildWithName(ConstString name) override {
151148
if (!m_block_struct_type.IsValid())
152149
return UINT32_MAX;

Diff for: lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp

-5
Original file line numberDiff line numberDiff line change
@@ -199,11 +199,6 @@ lldb_private::formatters::StdlibCoroutineHandleSyntheticFrontEnd::Update() {
199199
return lldb::ChildCacheState::eRefetch;
200200
}
201201

202-
bool lldb_private::formatters::StdlibCoroutineHandleSyntheticFrontEnd::
203-
MightHaveChildren() {
204-
return true;
205-
}
206-
207202
size_t StdlibCoroutineHandleSyntheticFrontEnd::GetIndexOfChildWithName(
208203
ConstString name) {
209204
if (!m_resume_ptr_sp || !m_destroy_ptr_sp)

Diff for: lldb/source/Plugins/Language/CPlusPlus/Coroutines.h

-2
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ class StdlibCoroutineHandleSyntheticFrontEnd
4040

4141
lldb::ChildCacheState Update() override;
4242

43-
bool MightHaveChildren() override;
44-
4543
size_t GetIndexOfChildWithName(ConstString name) override;
4644

4745
private:

Diff for: lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ class GenericBitsetFrontEnd : public SyntheticChildrenFrontEnd {
3232
return formatters::ExtractIndexFromString(name.GetCString());
3333
}
3434

35-
bool MightHaveChildren() override { return true; }
3635
lldb::ChildCacheState Update() override;
3736
llvm::Expected<uint32_t> CalculateNumChildren() override {
3837
return m_elements.size();

Diff for: lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ class GenericOptionalFrontend : public SyntheticChildrenFrontEnd {
4242
return formatters::ExtractIndexFromString(name.GetCString());
4343
}
4444

45-
bool MightHaveChildren() override { return true; }
4645
llvm::Expected<uint32_t> CalculateNumChildren() override {
4746
return m_has_value ? 1U : 0U;
4847
}

Diff for: lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp

-10
Original file line numberDiff line numberDiff line change
@@ -309,11 +309,6 @@ lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd::Update() {
309309
return lldb::ChildCacheState::eRefetch;
310310
}
311311

312-
bool lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd::
313-
MightHaveChildren() {
314-
return true;
315-
}
316-
317312
size_t lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd::
318313
GetIndexOfChildWithName(ConstString name) {
319314
if (name == "__ptr_")
@@ -412,11 +407,6 @@ lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEnd::Update() {
412407
return lldb::ChildCacheState::eRefetch;
413408
}
414409

415-
bool lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEnd::
416-
MightHaveChildren() {
417-
return true;
418-
}
419-
420410
size_t lldb_private::formatters::LibcxxUniquePtrSyntheticFrontEnd::
421411
GetIndexOfChildWithName(ConstString name) {
422412
if (name == "pointer")

Diff for: lldb/source/Plugins/Language/CPlusPlus/LibCxx.h

-4
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,6 @@ class LibcxxSharedPtrSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
102102

103103
lldb::ChildCacheState Update() override;
104104

105-
bool MightHaveChildren() override;
106-
107105
size_t GetIndexOfChildWithName(ConstString name) override;
108106

109107
~LibcxxSharedPtrSyntheticFrontEnd() override;
@@ -122,8 +120,6 @@ class LibcxxUniquePtrSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
122120

123121
lldb::ChildCacheState Update() override;
124122

125-
bool MightHaveChildren() override;
126-
127123
size_t GetIndexOfChildWithName(ConstString name) override;
128124

129125
~LibcxxUniquePtrSyntheticFrontEnd() override;

Diff for: lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp

-7
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,6 @@ class LibcxxStdAtomicSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
9696

9797
lldb::ChildCacheState Update() override;
9898

99-
bool MightHaveChildren() override;
100-
10199
size_t GetIndexOfChildWithName(ConstString name) override;
102100

103101
private:
@@ -119,11 +117,6 @@ lldb_private::formatters::LibcxxStdAtomicSyntheticFrontEnd::Update() {
119117
return lldb::ChildCacheState::eRefetch;
120118
}
121119

122-
bool lldb_private::formatters::LibcxxStdAtomicSyntheticFrontEnd::
123-
MightHaveChildren() {
124-
return true;
125-
}
126-
127120
llvm::Expected<uint32_t> lldb_private::formatters::
128121
LibcxxStdAtomicSyntheticFrontEnd::CalculateNumChildren() {
129122
return m_real_child ? 1 : 0;

Diff for: lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp

-7
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@ class LibcxxInitializerListSyntheticFrontEnd
3232

3333
lldb::ChildCacheState Update() override;
3434

35-
bool MightHaveChildren() override;
36-
3735
size_t GetIndexOfChildWithName(ConstString name) override;
3836

3937
private:
@@ -99,11 +97,6 @@ lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd::Update() {
9997
return lldb::ChildCacheState::eRefetch;
10098
}
10199

102-
bool lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd::
103-
MightHaveChildren() {
104-
return true;
105-
}
106-
107100
size_t lldb_private::formatters::LibcxxInitializerListSyntheticFrontEnd::
108101
GetIndexOfChildWithName(ConstString name) {
109102
if (!m_start)

Diff for: lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,6 @@ class AbstractListFrontEnd : public SyntheticChildrenFrontEnd {
109109
size_t GetIndexOfChildWithName(ConstString name) override {
110110
return ExtractIndexFromString(name.GetCString());
111111
}
112-
bool MightHaveChildren() override { return true; }
113112
lldb::ChildCacheState Update() override;
114113

115114
protected:

Diff for: lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp

-14
Original file line numberDiff line numberDiff line change
@@ -197,8 +197,6 @@ class LibcxxStdMapSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
197197

198198
lldb::ChildCacheState Update() override;
199199

200-
bool MightHaveChildren() override;
201-
202200
size_t GetIndexOfChildWithName(ConstString name) override;
203201

204202
private:
@@ -237,8 +235,6 @@ class LibCxxMapIteratorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
237235

238236
lldb::ChildCacheState Update() override;
239237

240-
bool MightHaveChildren() override;
241-
242238
size_t GetIndexOfChildWithName(ConstString name) override;
243239

244240
~LibCxxMapIteratorSyntheticFrontEnd() override = default;
@@ -397,11 +393,6 @@ lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd::Update() {
397393
return lldb::ChildCacheState::eRefetch;
398394
}
399395

400-
bool lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd::
401-
MightHaveChildren() {
402-
return true;
403-
}
404-
405396
size_t lldb_private::formatters::LibcxxStdMapSyntheticFrontEnd::
406397
GetIndexOfChildWithName(ConstString name) {
407398
return ExtractIndexFromString(name.GetCString());
@@ -497,11 +488,6 @@ lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd::GetChildAtIndex(
497488
return m_pair_sp->GetChildAtIndex(idx);
498489
}
499490

500-
bool lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd::
501-
MightHaveChildren() {
502-
return true;
503-
}
504-
505491
size_t lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEnd::
506492
GetIndexOfChildWithName(ConstString name) {
507493
if (!m_pair_sp)

Diff for: lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp

-7
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@ class LibcxxStdProxyArraySyntheticFrontEnd : public SyntheticChildrenFrontEnd {
4141

4242
lldb::ChildCacheState Update() override;
4343

44-
bool MightHaveChildren() override;
45-
4644
size_t GetIndexOfChildWithName(ConstString name) override;
4745

4846
private:
@@ -173,11 +171,6 @@ lldb_private::formatters::LibcxxStdProxyArraySyntheticFrontEnd::Update() {
173171
return ChildCacheState::eRefetch;
174172
}
175173

176-
bool lldb_private::formatters::LibcxxStdProxyArraySyntheticFrontEnd::
177-
MightHaveChildren() {
178-
return true;
179-
}
180-
181174
size_t lldb_private::formatters::LibcxxStdProxyArraySyntheticFrontEnd::
182175
GetIndexOfChildWithName(ConstString name) {
183176
if (!m_base)

Diff for: lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ class QueueFrontEnd : public SyntheticChildrenFrontEnd {
2525
: UINT32_MAX;
2626
}
2727

28-
bool MightHaveChildren() override { return true; }
2928
lldb::ChildCacheState Update() override;
3029

3130
llvm::Expected<uint32_t> CalculateNumChildren() override {

Diff for: lldb/source/Plugins/Language/CPlusPlus/LibCxxRangesRefView.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ class LibcxxStdRangesRefViewSyntheticFrontEnd
4040

4141
lldb::ChildCacheState Update() override;
4242

43-
bool MightHaveChildren() override { return true; }
44-
4543
size_t GetIndexOfChildWithName(ConstString name) override {
4644
// We only have a single child
4745
return 0;

Diff for: lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp

-7
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,6 @@ class LibcxxStdSliceArraySyntheticFrontEnd : public SyntheticChildrenFrontEnd {
6262

6363
lldb::ChildCacheState Update() override;
6464

65-
bool MightHaveChildren() override;
66-
6765
size_t GetIndexOfChildWithName(ConstString name) override;
6866

6967
private:
@@ -145,11 +143,6 @@ lldb_private::formatters::LibcxxStdSliceArraySyntheticFrontEnd::Update() {
145143
return ChildCacheState::eRefetch;
146144
}
147145

148-
bool lldb_private::formatters::LibcxxStdSliceArraySyntheticFrontEnd::
149-
MightHaveChildren() {
150-
return true;
151-
}
152-
153146
size_t lldb_private::formatters::LibcxxStdSliceArraySyntheticFrontEnd::
154147
GetIndexOfChildWithName(ConstString name) {
155148
if (!m_start)

Diff for: lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp

-7
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ class LibcxxStdSpanSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
5555
// from the only other place it can be: the template argument.
5656
lldb::ChildCacheState Update() override;
5757

58-
bool MightHaveChildren() override;
59-
6058
size_t GetIndexOfChildWithName(ConstString name) override;
6159

6260
private:
@@ -126,11 +124,6 @@ lldb_private::formatters::LibcxxStdSpanSyntheticFrontEnd::Update() {
126124
return lldb::ChildCacheState::eReuse;
127125
}
128126

129-
bool lldb_private::formatters::LibcxxStdSpanSyntheticFrontEnd::
130-
MightHaveChildren() {
131-
return true;
132-
}
133-
134127
size_t lldb_private::formatters::LibcxxStdSpanSyntheticFrontEnd::
135128
GetIndexOfChildWithName(ConstString name) {
136129
if (!m_start)

Diff for: lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ class TupleFrontEnd: public SyntheticChildrenFrontEnd {
2424
return formatters::ExtractIndexFromString(name.GetCString());
2525
}
2626

27-
bool MightHaveChildren() override { return true; }
2827
lldb::ChildCacheState Update() override;
2928
llvm::Expected<uint32_t> CalculateNumChildren() override {
3029
return m_elements.size();

Diff for: lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp

-14
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ class LibcxxStdUnorderedMapSyntheticFrontEnd
4040

4141
lldb::ChildCacheState Update() override;
4242

43-
bool MightHaveChildren() override;
44-
4543
size_t GetIndexOfChildWithName(ConstString name) override;
4644

4745
private:
@@ -70,8 +68,6 @@ class LibCxxUnorderedMapIteratorSyntheticFrontEnd
7068

7169
lldb::ChildCacheState Update() override;
7270

73-
bool MightHaveChildren() override;
74-
7571
size_t GetIndexOfChildWithName(ConstString name) override;
7672

7773
private:
@@ -295,11 +291,6 @@ lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEnd::Update() {
295291
return lldb::ChildCacheState::eRefetch;
296292
}
297293

298-
bool lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEnd::
299-
MightHaveChildren() {
300-
return true;
301-
}
302-
303294
size_t lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEnd::
304295
GetIndexOfChildWithName(ConstString name) {
305296
return ExtractIndexFromString(name.GetCString());
@@ -407,11 +398,6 @@ lldb::ValueObjectSP lldb_private::formatters::
407398
return lldb::ValueObjectSP();
408399
}
409400

410-
bool lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd::
411-
MightHaveChildren() {
412-
return true;
413-
}
414-
415401
size_t lldb_private::formatters::LibCxxUnorderedMapIteratorSyntheticFrontEnd::
416402
GetIndexOfChildWithName(ConstString name) {
417403
if (name == "first")

Diff for: lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp

-7
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ class LibcxxStdValarraySyntheticFrontEnd : public SyntheticChildrenFrontEnd {
3030

3131
lldb::ChildCacheState Update() override;
3232

33-
bool MightHaveChildren() override;
34-
3533
size_t GetIndexOfChildWithName(ConstString name) override;
3634

3735
private:
@@ -124,11 +122,6 @@ lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd::Update() {
124122
return ChildCacheState::eRefetch;
125123
}
126124

127-
bool lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd::
128-
MightHaveChildren() {
129-
return true;
130-
}
131-
132125
size_t lldb_private::formatters::LibcxxStdValarraySyntheticFrontEnd::
133126
GetIndexOfChildWithName(ConstString name) {
134127
if (!m_start || !m_finish)

Diff for: lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,6 @@ class VariantFrontEnd : public SyntheticChildrenFrontEnd {
203203
return formatters::ExtractIndexFromString(name.GetCString());
204204
}
205205

206-
bool MightHaveChildren() override { return true; }
207206
lldb::ChildCacheState Update() override;
208207
llvm::Expected<uint32_t> CalculateNumChildren() override { return m_size; }
209208
ValueObjectSP GetChildAtIndex(uint32_t idx) override;

Diff for: lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp

-9
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ class LibcxxStdVectorSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
3333

3434
lldb::ChildCacheState Update() override;
3535

36-
bool MightHaveChildren() override;
37-
3836
size_t GetIndexOfChildWithName(ConstString name) override;
3937

4038
private:
@@ -54,8 +52,6 @@ class LibcxxVectorBoolSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
5452

5553
lldb::ChildCacheState Update() override;
5654

57-
bool MightHaveChildren() override { return true; }
58-
5955
size_t GetIndexOfChildWithName(ConstString name) override;
6056

6157
private:
@@ -153,11 +149,6 @@ lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd::Update() {
153149
return lldb::ChildCacheState::eRefetch;
154150
}
155151

156-
bool lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd::
157-
MightHaveChildren() {
158-
return true;
159-
}
160-
161152
size_t lldb_private::formatters::LibcxxStdVectorSyntheticFrontEnd::
162153
GetIndexOfChildWithName(ConstString name) {
163154
if (!m_start || !m_finish)

0 commit comments

Comments
 (0)