Browse Source

Merge pull request #95292 from aaronp64/is_parent_class_perf

Improve `ClassDB::_is_parent_class` performance
Rémi Verschelde 11 months ago
parent
commit
cd9da3344f
1 changed files with 4 additions and 8 deletions
  1. 4 8
      core/object/class_db.cpp

+ 4 - 8
core/object/class_db.cpp

@@ -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;