[Lldb-commits] [lldb] 3c84923 - [NFC][lldb] Simplify Typelist::GetTypeAtIndex (#208411)
via lldb-commits
lldb-commits at lists.llvm.org
Thu Jul 9 07:15:13 PDT 2026
Author: Ebuka Ezike
Date: 2026-07-09T15:15:07+01:00
New Revision: 3c849236aef32acf5b974cf0f69005aad8b196c5
URL: https://github.com/llvm/llvm-project/commit/3c849236aef32acf5b974cf0f69005aad8b196c5
DIFF: https://github.com/llvm/llvm-project/commit/3c849236aef32acf5b974cf0f69005aad8b196c5.diff
LOG: [NFC][lldb] Simplify Typelist::GetTypeAtIndex (#208411)
Access the index value at constant time and use for range for the
`ForEach` functions.
Added:
Modified:
lldb/include/lldb/Symbol/TypeList.h
lldb/source/Symbol/TypeList.cpp
Removed:
################################################################################
diff --git a/lldb/include/lldb/Symbol/TypeList.h b/lldb/include/lldb/Symbol/TypeList.h
index 71126619ecde7..61faf79dc73c1 100644
--- a/lldb/include/lldb/Symbol/TypeList.h
+++ b/lldb/include/lldb/Symbol/TypeList.h
@@ -34,7 +34,7 @@ class TypeList {
bool Empty() const { return !GetSize(); }
- lldb::TypeSP GetTypeAtIndex(uint32_t idx);
+ lldb::TypeSP GetTypeAtIndex(uint32_t idx) const;
typedef std::vector<lldb::TypeSP> collection;
typedef llvm::iterator_range<collection::const_iterator> TypeIterable;
diff --git a/lldb/source/Symbol/TypeList.cpp b/lldb/source/Symbol/TypeList.cpp
index eae2fa4e5757c..6e94cfda0acd0 100644
--- a/lldb/source/Symbol/TypeList.cpp
+++ b/lldb/source/Symbol/TypeList.cpp
@@ -39,36 +39,32 @@ uint32_t TypeList::GetSize() const { return m_types.size(); }
// type lists that are returned for "image dump -t TYPENAME" commands and other
// simple symbol queries that grab the first result...
-TypeSP TypeList::GetTypeAtIndex(uint32_t idx) {
- iterator pos, end;
- uint32_t i = idx;
- assert(i < GetSize() && "Accessing past the end of a TypeList");
- for (pos = m_types.begin(), end = m_types.end(); pos != end; ++pos) {
- if (i == 0)
- return *pos;
- --i;
- }
- return TypeSP();
+TypeSP TypeList::GetTypeAtIndex(uint32_t idx) const {
+ assert(idx < GetSize() && "Accessing past the end of a TypeList");
+
+ if (idx < m_types.size())
+ return m_types[idx];
+ return {};
}
void TypeList::ForEach(
std::function<bool(const lldb::TypeSP &type_sp)> const &callback) const {
- for (auto pos = m_types.begin(), end = m_types.end(); pos != end; ++pos) {
- if (!callback(*pos))
+ for (const auto &type : m_types) {
+ if (!callback(type))
break;
}
}
void TypeList::ForEach(
std::function<bool(lldb::TypeSP &type_sp)> const &callback) {
- for (auto pos = m_types.begin(), end = m_types.end(); pos != end; ++pos) {
- if (!callback(*pos))
+ for (auto &type : m_types) {
+ if (!callback(type))
break;
}
}
void TypeList::Dump(Stream *s, bool show_context) {
- for (iterator pos = m_types.begin(), end = m_types.end(); pos != end; ++pos)
- if (Type *t = pos->get())
- t->Dump(s, show_context);
+ for (auto &type : m_types)
+ if (type)
+ type->Dump(s, show_context);
}
More information about the lldb-commits
mailing list