diff options
author | Sean Callanan <scallanan@apple.com> | 2015-10-21 19:14:33 +0000 |
---|---|---|
committer | Sean Callanan <scallanan@apple.com> | 2015-10-21 19:14:33 +0000 |
commit | 93c0b003805f40081edba82fbd9e9375c880a1e2 (patch) | |
tree | 7255d528c8b17ffb4a39a08d029c48c075683be6 /lldb/source/Core/PluginManager.cpp | |
parent | 654aaf12dc319ea4b6fc82123d903e6d0c49984b (diff) | |
download | bcm5719-llvm-93c0b003805f40081edba82fbd9e9375c880a1e2.tar.gz bcm5719-llvm-93c0b003805f40081edba82fbd9e9375c880a1e2.zip |
Fixed version of r250913, which actually implements all the static functions.
Thanks to Siva Chandra and Oleksiy Vyalov for pouncing on this.
llvm-svn: 250928
Diffstat (limited to 'lldb/source/Core/PluginManager.cpp')
-rw-r--r-- | lldb/source/Core/PluginManager.cpp | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/lldb/source/Core/PluginManager.cpp b/lldb/source/Core/PluginManager.cpp index 97116dd4ad8..a90b57678b7 100644 --- a/lldb/source/Core/PluginManager.cpp +++ b/lldb/source/Core/PluginManager.cpp @@ -2662,6 +2662,7 @@ struct REPLInstance ConstString name; std::string description; REPLCreateInstance create_callback; + REPLEnumerateSupportedLanguages enumerate_languages_callback; }; typedef std::vector<REPLInstance> REPLInstances; @@ -2683,7 +2684,8 @@ GetREPLInstances () bool PluginManager::RegisterPlugin (const ConstString &name, const char *description, - REPLCreateInstance create_callback) + REPLCreateInstance create_callback, + REPLEnumerateSupportedLanguages enumerate_languages_callback) { if (create_callback) { @@ -2693,6 +2695,7 @@ PluginManager::RegisterPlugin (const ConstString &name, if (description && description[0]) instance.description = description; instance.create_callback = create_callback; + instance.enumerate_languages_callback = enumerate_languages_callback; Mutex::Locker locker (GetREPLMutex ()); GetREPLInstances ().push_back (instance); } @@ -2748,6 +2751,35 @@ PluginManager::GetREPLCreateCallbackForPluginName (const ConstString &name) return NULL; } +REPLEnumerateSupportedLanguages +PluginManager::GetREPLEnumerateSupportedLanguagesCallbackAtIndex (uint32_t idx) +{ + Mutex::Locker locker (GetREPLMutex ()); + REPLInstances &instances = GetREPLInstances (); + if (idx < instances.size()) + return instances[idx].enumerate_languages_callback; + return NULL; +} + + +REPLEnumerateSupportedLanguages +PluginManager::GetREPLSystemEnumerateSupportedLanguagesCallbackForPluginName (const ConstString &name) +{ + if (name) + { + Mutex::Locker locker (GetREPLMutex ()); + REPLInstances &instances = GetREPLInstances (); + + REPLInstances::iterator pos, end = instances.end(); + for (pos = instances.begin(); pos != end; ++ pos) + { + if (name == pos->name) + return pos->enumerate_languages_callback; + } + } + return NULL; +} + #pragma mark PluginManager void |