### Godot version

4.1.beta1

### System information

macOS 13.3.1 mobile renderer

### Issue description

Trying to open and edit one of my visual shaders now consistently crashes Godot 4.1beta1. 

The shader was made and edited fine in earlier versions of Godot 4 and I'm not certain what is special with this shader (attached below for investigation). Opening and editing other visual shaders works fine for me. The only thing I can think of that this shader uses that other do not is the gradient node, though as I can't open it I'm not sure what else might be going on in it.

### Steps to reproduce

Open the attached visual shader (in any project)

### Minimal reproduction project

[ConnectBlendShader.tres.zip](https://www.lostminds.com/godot/ConnectBlendShader.tres.zip)
Vector2 dir;
	if (p_tangent == TANGENT_LEFT) {
		dir = -Vector2(1, curve->get_point_left_tangent(p_index));
	} else {
		dir = Vector2(1, curve->get_point_right_tangent(p_index));
	}
	Vector2 point_pos = curve->get_point_position(p_index);
	Vector2 point_view_pos = get_view_pos(point_pos);
	Vector2 control_view_pos = get_view_pos(point_pos + dir);
	Vector2 distance_from_point = tangent_length * (control_view_pos - point_view_pos).normalized();
	Vector2 tangent_view_pos = point_view_pos + distance_from_point;
	
	
	float fraction_inside = 1.0;
	if (distance_from_point.x != 0.0) {
		fraction_inside = MIN(fraction_inside, ((distance_from_point.x > 0 ? get_rect().size.x : 0) - point_view_pos.x) / distance_from_point.x);
	}
	if (distance_from_point.y != 0.0) {
		fraction_inside = MIN(fraction_inside, ((distance_from_point.y > 0 ? get_rect().size.y : 0) - point_view_pos.y) / distance_from_point.y);
	}
	if (fraction_inside < 1.0 && fraction_inside > 0.5) {
		tangent_view_pos = point_view_pos + distance_from_point * fraction_inside;
	}
	return tangent_view_pos;
}
Vector2 CurveEdit::get_view_pos(Vector2 p_world_pos) const {