### Godot version

63f95c0e58e51ec2939e8b47803cb607fb35cadc

### System information

Windows 11

### Issue description

Using the following code:

```gdscript
extends StaticBody3D

@onready var shape_3d = $CollisionShape3D

func _ready():
	var convex_shape = ConvexPolygonShape3D.new()
	var points = PackedVector3Array()
	
	points.append(Vector3(0, 0, 0))
	points.append(Vector3(1, 0, 0))
	points.append(Vector3(0, 0, 1))
	points.append(Vector3(1, 0, 1))
	
	convex_shape.points = points
	shape_3d.shape = convex_shape
```

produces the correct result:

![image](https://user-images.githubusercontent.com/3036176/208936364-ae651b87-4be9-4fe0-8e5a-4cf17d937348.png)

but generates unnecessary errors:

![image](https://user-images.githubusercontent.com/3036176/208936226-0447814c-cfd4-4b41-8020-3bcd3dc11a44.png)

```
ERROR: Condition "p_new_capacity < capacity" is true.
   at: OAHashMap<unsigned __int64,int,struct HashMapHasherDefault,struct HashMapComparatorDefault<unsigned __int64> >::)
ERROR: Condition "p_new_capacity < capacity" is true.
   at: OAHashMap<unsigned __int64,int,struct HashMapHasherDefault,struct HashMapComparatorDefault<unsigned __int64> >::)
```


### Steps to reproduce

Check the attached project.

### Minimal reproduction project

[convex_polygon_test.zip](https://github.com/godotengine/godot/files/10278802/convex_polygon_test.zip)

int64_t orig_dot = p_face->origin.dot(normal);
	Point32 shifted_origin = p_face->origin + shift;
	int64_t shifted_dot = shifted_origin.dot(normal);
	CHULL_ASSERT(shifted_dot <= orig_dot);
	if (shifted_dot >= orig_dot) {
		return false;
	}
	Edge *intersection = nullptr;
	Edge *start_edge = p_face->nearby_vertex->edges;
#ifdef DEBUG_CONVEX_HULL
	printf("Start edge is ");
	start_edge->print();
	printf(", normal is (%lld %lld %lld), shifted dot is %lld\n", normal.x, normal.y, normal.z, shifted_dot);
#endif
	Rational128 opt_dot = p_face->nearby_vertex->dot(normal);
	int32_t cmp = opt_dot.compare(shifted_dot);
#ifdef SHOW_ITERATIONS
	int32_t n = 0;
#endif
	if (cmp >= 0) {
		Edge *e = start_edge;
		do {
#ifdef SHOW_ITERATIONS
			n++;
#endif
			Rational128 dot = e->target->dot(normal);
			CHULL_ASSERT(dot.compare(orig_dot) <= 0);
#ifdef DEBUG_CONVEX_HULL
			printf("Moving downwards, edge is ");
			e->print();