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

List<StringName> names;
	Ref<Theme> old_snapshot = edited_theme->duplicate();
	Ref<Theme> new_snapshot = edited_theme->duplicate();
	EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton();
	ur->create_action(TTR("Remove All Items From Theme"));
	for (int dt = 0; dt < Theme::DATA_TYPE_MAX; dt++) {
		Theme::DataType data_type = (Theme::DataType)dt;
		names.clear();
		new_snapshot->get_theme_item_list(data_type, edited_item_type, &names);
		for (const StringName &E : names) {
			new_snapshot->clear_theme_item(data_type, E, edited_item_type);
			if (dt == Theme::DATA_TYPE_STYLEBOX && theme_type_editor->is_stylebox_pinned(edited_theme->get_stylebox(E, edited_item_type))) {
				ur->add_do_method(theme_type_editor, "_unpin_leading_stylebox");
				ur->add_undo_method(theme_type_editor, "_pin_leading_stylebox", E, edited_theme->get_stylebox(E, edited_item_type));
			}
		}
	}
	ur->add_do_method(*edited_theme, "clear");
	ur->add_do_method(*edited_theme, "merge_with", new_snapshot);
	ur->add_undo_method(*edited_theme, "merge_with", old_snapshot);
	ur->add_do_method(this, "_update_edit_item_tree", edited_item_type);
	ur->add_undo_method(this, "_update_edit_item_tree", edited_item_type);
	ur->commit_action();
}
void ThemeItemEditorDialog::_open_add_theme_item_dialog(int p_data_type) {