Fix crash in Create New Node dialog with certain user-created scripts
This commit is contained in:
parent
c944c9e572
commit
639c4b6f20
|
@ -235,19 +235,19 @@ void CreateDialog::_add_type(const String &p_type, const TypeCategory p_type_cat
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (ScriptServer::is_global_class(p_type)) {
|
if (ScriptServer::is_global_class(p_type)) {
|
||||||
inherits = EditorNode::get_editor_data().script_class_get_base(p_type);
|
Ref<Script> script = EditorNode::get_editor_data().script_class_load_script(p_type);
|
||||||
if (inherits.is_empty()) {
|
ERR_FAIL_COND(script.is_null());
|
||||||
Ref<Script> script = EditorNode::get_editor_data().script_class_load_script(p_type);
|
|
||||||
ERR_FAIL_COND(script.is_null());
|
|
||||||
|
|
||||||
Ref<Script> base = script->get_base_script();
|
Ref<Script> base = script->get_base_script();
|
||||||
if (base.is_null()) {
|
if (base.is_null()) {
|
||||||
String extends;
|
String extends;
|
||||||
script->get_language()->get_global_class_name(script->get_path(), &extends);
|
script->get_language()->get_global_class_name(script->get_path(), &extends);
|
||||||
|
|
||||||
inherits = extends;
|
inherits = extends;
|
||||||
inherited_type = TypeCategory::CPP_TYPE;
|
inherited_type = TypeCategory::CPP_TYPE;
|
||||||
} else {
|
} else {
|
||||||
|
inherits = script->get_language()->get_global_class_name(base->get_path());
|
||||||
|
if (inherits.is_empty()) {
|
||||||
inherits = base->get_path();
|
inherits = base->get_path();
|
||||||
inherited_type = TypeCategory::PATH_TYPE;
|
inherited_type = TypeCategory::PATH_TYPE;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue