### 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 (revertable_properties.size() == 1) {
						num_revertable_str = "(1 change)";
					} else {
						num_revertable_str = vformat("(%d changes)", revertable_properties.size());
					}
					num_revertable_width = light_font->get_string_size(num_revertable_str, HORIZONTAL_ALIGNMENT_LEFT, -1.0f, light_font_size, TextServer::JUSTIFICATION_NONE).x;
					if (label_width + separation + num_revertable_width > available) {
						
						num_revertable_str = vformat("(%d)", revertable_properties.size());
						num_revertable_width = light_font->get_string_size(num_revertable_str, HORIZONTAL_ALIGNMENT_LEFT, -1.0f, light_font_size, TextServer::JUSTIFICATION_NONE).x;
					}
					Point2 text_offset = Point2(
							margin_end,
							light_font->get_ascent(light_font_size) + (header_height - light_font->get_height(light_font_size)) / 2);
					if (!rtl) {
						text_offset.x = get_size().width - (text_offset.x + num_revertable_width);
					}
					draw_string(light_font, text_offset, num_revertable_str, HORIZONTAL_ALIGNMENT_LEFT, -1.0f, light_font_size, light_font_color, TextServer::JUSTIFICATION_NONE);
					margin_end += num_revertable_width + separation;
					available -= num_revertable_width + separation;
				}
				
				Point2 text_offset = Point2(
						margin_start,
						font->get_ascent(font_size) + (header_height - font->get_height(font_size)) / 2);
				if (rtl) {
					text_offset.x = margin_end;
				}
				HorizontalAlignment text_align = rtl ? HORIZONTAL_ALIGNMENT_RIGHT : HORIZONTAL_ALIGNMENT_LEFT;
				draw_string(font, text_offset, label, text_align, available, font_size, font_color, TextServer::JUSTIFICATION_KASHIDA | TextServer::JUSTIFICATION_CONSTRAIN_ELLIPSIS);