瀏覽代碼

Removed redundant ClassDB::is_class_enabled() and moved second dynamic_cast inside worst case if

Bartłomiej T. Listwon 3 年之前
父節點
當前提交
b6cfc55113
共有 1 個文件被更改,包括 6 次插入8 次删除
  1. 6 8
      scene/resources/packed_scene.cpp

+ 6 - 8
scene/resources/packed_scene.cpp

@@ -175,14 +175,12 @@ Node *SceneState::instantiate(GenEditState p_edit_state) const {
 #endif
 			}
 		} else {
-			Object *obj = nullptr;
+			//node belongs to this scene and must be created
+			Object *obj = ClassDB::instantiate(snames[n.type]);
 
-			if (ClassDB::is_class_enabled(snames[n.type])) {
-				//node belongs to this scene and must be created
-				obj = ClassDB::instantiate(snames[n.type]);
-			}
+			node = Object::cast_to<Node>(obj);
 
-			if (!Object::cast_to<Node>(obj)) {
+			if (!node) {
 				if (obj) {
 					memdelete(obj);
 					obj = nullptr;
@@ -203,9 +201,9 @@ Node *SceneState::instantiate(GenEditState p_edit_state) const {
 				if (!obj) {
 					obj = memnew(Node);
 				}
-			}
 
-			node = Object::cast_to<Node>(obj);
+				node = Object::cast_to<Node>(obj);
+			}
 		}
 
 		if (node) {