diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2022-03-31 13:34:36 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2022-03-31 13:34:36 +0200 |
commit | 0a9dd0c7d31cbba2170fdfda4b747a1fe5ce665a (patch) | |
tree | 08aaf5b0c9fa06ca2352f1775f2c470841653a93 /libbuild2/target.cxx | |
parent | eed93abebc20e59f861c7e8b6322f7ef3681c59e (diff) |
Use own type information instead of dynamic_cast in target::is_a()
Diffstat (limited to 'libbuild2/target.cxx')
-rw-r--r-- | libbuild2/target.cxx | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/libbuild2/target.cxx b/libbuild2/target.cxx index 5fa3c37..ba1454e 100644 --- a/libbuild2/target.cxx +++ b/libbuild2/target.cxx @@ -22,26 +22,13 @@ namespace build2 bool target_type:: is_a (const char* n) const { - if (strcmp (name, n) == 0) - return true; - - for (const target_type* b (base); b != nullptr; b = b->base) + for (const target_type* b (this); b != nullptr; b = b->base) if (strcmp (b->name, n) == 0) return true; return false; } - bool target_type:: - is_a_base (const target_type& tt) const - { - for (const target_type* b (base); b != nullptr; b = b->base) - if (*b == tt) - return true; - - return false; - } - // target_key // void target_key:: |