### 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)
return world_2d;
}
Camera2D *Viewport::get_camera_2d() const {
	return camera_2d;
}
Transform2D Viewport::get_final_transform() const {
	return stretch_transform * global_canvas_transform;
}
void Viewport::assign_next_enabled_camera_2d(const StringName &p_camera_group) {
	List<Node *> camera_list;
	get_tree()->get_nodes_in_group(p_camera_group, &camera_list);
	Camera2D *new_camera = nullptr;
	for (Node *E : camera_list) {
		Camera2D *cam = Object::cast_to<Camera2D>(E);
		if (!cam) {
			continue; 
		}
		if (cam->is_enabled()) {
			new_camera = cam;
			break;
		}
	}
	_camera_2d_set(new_camera);
	if (!camera_2d) {
		set_canvas_transform(Transform2D());
	}
}
void Viewport::_update_canvas_items(Node *p_node) {