diff options
Diffstat (limited to 'lldb/source/Core/ModuleList.cpp')
-rw-r--r-- | lldb/source/Core/ModuleList.cpp | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/lldb/source/Core/ModuleList.cpp b/lldb/source/Core/ModuleList.cpp index d5cf9ab4566..9799f924575 100644 --- a/lldb/source/Core/ModuleList.cpp +++ b/lldb/source/Core/ModuleList.cpp @@ -248,14 +248,35 @@ ModuleList::FindGlobalVariables (const RegularExpression& regex, size_t ModuleList::FindSymbolsWithNameAndType (const ConstString &name, SymbolType symbol_type, - SymbolContextList &sc_list) + SymbolContextList &sc_list, + bool append) { Mutex::Locker locker(m_modules_mutex); - sc_list.Clear(); + if (!append) + sc_list.Clear(); + size_t initial_size = sc_list.GetSize(); + collection::iterator pos, end = m_modules.end(); for (pos = m_modules.begin(); pos != end; ++pos) (*pos)->FindSymbolsWithNameAndType (name, symbol_type, sc_list); - return sc_list.GetSize(); + return sc_list.GetSize() - initial_size; +} + + size_t +ModuleList::FindSymbolsMatchingRegExAndType (const RegularExpression ®ex, + lldb::SymbolType symbol_type, + SymbolContextList &sc_list, + bool append) +{ + Mutex::Locker locker(m_modules_mutex); + if (!append) + sc_list.Clear(); + size_t initial_size = sc_list.GetSize(); + + collection::iterator pos, end = m_modules.end(); + for (pos = m_modules.begin(); pos != end; ++pos) + (*pos)->FindSymbolsMatchingRegExAndType (regex, symbol_type, sc_list); + return sc_list.GetSize() - initial_size; } class ModuleMatches |