Merge pull request #95292 from aaronp64/is_parent_class_perf

Improve `ClassDB::_is_parent_class` performance
This commit is contained in:
Rémi Verschelde 2024-09-12 09:17:39 +02:00
commit cd9da3344f
No known key found for this signature in database
GPG key ID: C3336907360768E1

View file

@ -227,16 +227,12 @@ public:
#endif
bool ClassDB::_is_parent_class(const StringName &p_class, const StringName &p_inherits) {
if (!classes.has(p_class)) {
return false;
}
StringName inherits = p_class;
while (inherits.operator String().length()) {
if (inherits == p_inherits) {
ClassInfo *c = classes.getptr(p_class);
while (c) {
if (c->name == p_inherits) {
return true;
}
inherits = _get_parent_class(inherits);
c = c->inherits_ptr;
}
return false;