aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/target.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2022-03-31 13:34:36 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2022-03-31 13:34:36 +0200
commit0a9dd0c7d31cbba2170fdfda4b747a1fe5ce665a (patch)
tree08aaf5b0c9fa06ca2352f1775f2c470841653a93 /libbuild2/target.cxx
parenteed93abebc20e59f861c7e8b6322f7ef3681c59e (diff)
Use own type information instead of dynamic_cast in target::is_a()
Diffstat (limited to 'libbuild2/target.cxx')
-rw-r--r--libbuild2/target.cxx15
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::