diff options
author | Enrico Granata <egranata@apple.com> | 2015-09-02 01:31:10 +0000 |
---|---|---|
committer | Enrico Granata <egranata@apple.com> | 2015-09-02 01:31:10 +0000 |
commit | 28b3831e3975b27e80e5608b4860299f881dde56 (patch) | |
tree | 2ef6fecd56bec1be6ebdd031c65952941dbb4697 | |
parent | 578c8a784161cd8032d5c4cd3e960ee0a1a2f01b (diff) | |
download | bcm5719-llvm-28b3831e3975b27e80e5608b4860299f881dde56.tar.gz bcm5719-llvm-28b3831e3975b27e80e5608b4860299f881dde56.zip |
Add a Language::ForAllLanguages helper function
llvm-svn: 246614
-rw-r--r-- | lldb/include/lldb/Target/Language.h | 32 | ||||
-rw-r--r-- | lldb/source/Target/Language.cpp | 10 |
2 files changed, 28 insertions, 14 deletions
diff --git a/lldb/include/lldb/Target/Language.h b/lldb/include/lldb/Target/Language.h index e731c608db4..35e2301b8e3 100644 --- a/lldb/include/lldb/Target/Language.h +++ b/lldb/include/lldb/Target/Language.h @@ -27,20 +27,20 @@ namespace lldb_private { { public: - ~Language() override; - - static Language* - FindPlugin (lldb::LanguageType language); - - // return false from callback to stop iterating - static void - ForEach (std::function<bool(Language*)> callback); - - virtual lldb::LanguageType - GetLanguageType () const = 0; - - virtual lldb::TypeCategoryImplSP - GetFormatters (); + ~Language() override; + + static Language* + FindPlugin (lldb::LanguageType language); + + // return false from callback to stop iterating + static void + ForEach (std::function<bool(Language*)> callback); + + virtual lldb::LanguageType + GetLanguageType () const = 0; + + virtual lldb::TypeCategoryImplSP + GetFormatters (); // These are accessors for general information about the Languages lldb knows about: @@ -52,6 +52,10 @@ namespace lldb_private { static void PrintAllLanguages (Stream &s, const char *prefix, const char *suffix); + + // return false from callback to stop iterating + static void + ForAllLanguages (std::function<bool(lldb::LanguageType)> callback); static bool LanguageIsCPlusPlus (lldb::LanguageType language); diff --git a/lldb/source/Target/Language.cpp b/lldb/source/Target/Language.cpp index 30a0492a39a..e41d7b864ab 100644 --- a/lldb/source/Target/Language.cpp +++ b/lldb/source/Target/Language.cpp @@ -179,6 +179,16 @@ Language::PrintAllLanguages (Stream &s, const char *prefix, const char *suffix) } } +void +Language::ForAllLanguages (std::function<bool(lldb::LanguageType)> callback) +{ + for (uint32_t i = 1; i < num_languages; i++) + { + if (!callback(language_names[i].type)) + break; + } +} + bool Language::LanguageIsCPlusPlus (LanguageType language) { |