summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEnrico Granata <egranata@apple.com>2015-09-02 01:31:10 +0000
committerEnrico Granata <egranata@apple.com>2015-09-02 01:31:10 +0000
commit28b3831e3975b27e80e5608b4860299f881dde56 (patch)
tree2ef6fecd56bec1be6ebdd031c65952941dbb4697
parent578c8a784161cd8032d5c4cd3e960ee0a1a2f01b (diff)
downloadbcm5719-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.h32
-rw-r--r--lldb/source/Target/Language.cpp10
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)
{
OpenPOWER on IntegriCloud