### Godot version

v4.0.beta9.official [e780dc332]

### System information

macOS Ventura 13.0.1 (Intel), Radeon Pro 580 8 GB

### Issue description

When setting the size of a SubViewport (that is inside the corresponding SubViewportContainer) to zero, the editor crashes instantly.

**But it only happens when I set the size of the SubViewport by sliding the values.**

You can see what happens in this video:


https://user-images.githubusercontent.com/91340577/209363880-503d3dff-80e1-4e9e-bb57-d059fdbfeed0.mp4

At the end of the video you can see the crash message of macOS reading: _Godot quit unexpectedly._

If I write the number zero (or any negative) to the values of the SubViewport size, the crash doesn't happens.

### Steps to reproduce

1. Add a SubViewportContainer
2. Add a SubViewport as a child of the SubViewportContainer
3. Set the size of the SubViewport to zero **by sliding** the X or the Y value.

### Minimal reproduction project

1. Open the project
2. Go to the Control.tscn scene
3. Select the SubViewport node
4. Slide the X or Y values of the size to zero

[SubViewportCrash.zip](https://github.com/godotengine/godot/files/10296101/SubViewportCrash.zip)
for (int i = 0; i < gui.sub_windows.size(); i++) {
		RS::get_singleton()->canvas_item_set_draw_index(gui.sub_windows[i].canvas_item, i);
	}
}
void Viewport::_sub_window_register(Window *p_window) {
	ERR_FAIL_COND(!is_inside_tree());
	for (int i = 0; i < gui.sub_windows.size(); i++) {
		ERR_FAIL_COND(gui.sub_windows[i].window == p_window);
	}
	if (gui.sub_windows.size() == 0) {
		subwindow_canvas = RS::get_singleton()->canvas_create();
		RS::get_singleton()->viewport_attach_canvas(viewport, subwindow_canvas);
		RS::get_singleton()->viewport_set_canvas_stacking(viewport, subwindow_canvas, SUBWINDOW_CANVAS_LAYER, 0);
	}
	SubWindow sw;
	sw.canvas_item = RS::get_singleton()->canvas_item_create();
	RS::get_singleton()->canvas_item_set_parent(sw.canvas_item, subwindow_canvas);
	sw.window = p_window;
	gui.sub_windows.push_back(sw);
	_sub_window_grab_focus(p_window);
	RenderingServer::get_singleton()->viewport_set_parent_viewport(p_window->viewport, viewport);
}
void Viewport::_sub_window_update(Window *p_window) {