### 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)

edited_type = theme_type_list->get_item_text(p_index);
	_update_type_items();
}
void ThemeTypeEditor::_add_type_button_cbk() {
	add_type_mode = ADD_THEME_TYPE;
	add_type_dialog->set_title(TTR("Add Item Type"));
	add_type_dialog->set_ok_button_text(TTR("Add Type"));
	add_type_dialog->set_include_own_types(false);
	add_type_dialog->popup_centered(Size2(560, 420) * EDSCALE);
}
void ThemeTypeEditor::_add_default_type_items() {
	List<StringName> names;
	String default_type = edited_type;
	if (edited_theme->get_type_variation_base(edited_type) != StringName()) {
		default_type = edited_theme->get_type_variation_base(edited_type);
	}
	Ref<Theme> old_snapshot = edited_theme->duplicate();
	Ref<Theme> new_snapshot = edited_theme->duplicate();
	updating = true;
	{
		names.clear();
		ThemeDB::get_singleton()->get_default_theme()->get_icon_list(default_type, &names);
		for (const StringName &E : names) {
			if (!new_snapshot->has_icon(E, edited_type)) {