summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/ModuleList.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Core/ModuleList.cpp')
-rw-r--r--lldb/source/Core/ModuleList.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/lldb/source/Core/ModuleList.cpp b/lldb/source/Core/ModuleList.cpp
index 1c974c87120..37357c373ca 100644
--- a/lldb/source/Core/ModuleList.cpp
+++ b/lldb/source/Core/ModuleList.cpp
@@ -290,6 +290,28 @@ ModuleList::FindModule (lldb_private::Module *module_ptr)
}
+uint32_t
+ModuleList::FindTypes (const SymbolContext& sc, const ConstString &name, bool append, uint32_t max_matches, TypeList& types)
+{
+ Mutex::Locker locker(m_modules_mutex);
+
+ if (!append)
+ types.Clear();
+
+ uint32_t total_matches = 0;
+ collection::const_iterator pos, end = m_modules.end();
+ for (pos = m_modules.begin(); pos != end; ++pos)
+ {
+ if (sc.module_sp.get() == NULL || sc.module_sp.get() == (*pos).get())
+ total_matches += (*pos)->FindTypes (sc, name, true, max_matches, types);
+
+ if (total_matches >= max_matches)
+ break;
+ }
+ return total_matches;
+}
+
+
ModuleSP
ModuleList::FindFirstModuleForFileSpec (const FileSpec &file_spec, const ConstString *object_name)
{
OpenPOWER on IntegriCloud