### Godot version

v4.0.beta17.mono.official [c40020513]

### System information

Window 11, Forward+, GTX 1060

### Issue description

Adding two theme variations in a row result to a  crash.

https://user-images.githubusercontent.com/93253123/217037249-1ce1d56d-beb6-4435-83ad-9f8a07fe0e96.mp4



### Steps to reproduce

1. Create a project.
2. Create a theme.
3. Double click to go in the theme editor.
4. Click on manage items buttons.
5. In the add type field type a name to add a type.
6. type another name to add a second type.
7. Crash.

### Minimal reproduction project

[ThemeVariationCrash.zip](https://github.com/godotengine/godot/files/10665863/ThemeVariationCrash.zip)

if (!EditorNode::get_editor_data().is_type_recognized(type) && p.hint_string.length() && FileAccess::exists(p.hint_string)) {
				
				Ref<Script> scr = ResourceLoader::load(p.hint_string, "Script");
				StringName base_type;
				StringName name;
				if (scr.is_valid()) {
					base_type = scr->get_instance_base_type();
					name = EditorNode::get_editor_data().script_class_get_name(scr->get_path());
					Vector<DocData::ClassDoc> docs = scr->get_documentation();
					if (!docs.is_empty()) {
						doc_name = docs[0].name;
					}
					if (name != StringName() && label != name) {
						label = name;
					}
				}
				while (scr.is_valid()) {
					name = EditorNode::get_editor_data().script_class_get_name(scr->get_path());
					String icon_path = EditorNode::get_editor_data().script_class_get_icon_path(name);
					if (name != StringName() && !icon_path.is_empty()) {
						category->icon = ResourceLoader::load(icon_path, "Texture");
						break;
					}
					const EditorData::CustomType *ctype = EditorNode::get_editor_data().get_custom_type_by_path(scr->get_path());
					if (ctype) {
						category->icon = ctype->icon;
						break;
					}
					scr = scr->get_base_script();
				}