### 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 (rtl) {
					draw_texture(pinned_icon, Vector2(size.width - ofs - text_w - total_icon_w, y), color);
				} else {
					draw_texture(pinned_icon, Vector2(ofs + text_w + margin_w, y), color);
				}
				text_limit -= total_icon_w;
			}
			int v_ofs = (size.height - font->get_height(font_size)) / 2;
			if (rtl) {
				draw_string(font, Point2(size.width - ofs - text_limit, v_ofs + font->get_ascent(font_size)), label, HORIZONTAL_ALIGNMENT_RIGHT, text_limit, font_size, color);
			} else {
				draw_string(font, Point2(ofs, v_ofs + font->get_ascent(font_size)), label, HORIZONTAL_ALIGNMENT_LEFT, text_limit, font_size, color);
			}
			ofs = size.width;
			if (keying) {
				Ref<Texture2D> key;
				if (use_keying_next()) {
					key = get_theme_icon(SNAME("KeyNext"), SNAME("EditorIcons"));
				} else {
					key = get_theme_icon(SNAME("Key"), SNAME("EditorIcons"));
				}
				ofs -= key->get_width() + get_theme_constant(SNAME("hseparator"), SNAME("Tree"));
				Color color2(1, 1, 1);
				if (keying_hover) {
					color2.r *= 1.2;
					color2.g *= 1.2;
					color2.b *= 1.2;
				}
				keying_rect = Rect2(ofs, ((size.height - key->get_height()) / 2), key->get_width(), key->get_height());
				if (rtl) {