### Godot version

4.0.2

### System information

Linux 6.3.4-arch1-1
pipewire 0.3.71 (with pipewire-pulse)



### Issue description

When double-clicking on an audio file in the file explorer, Godot crashes.

```
(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007f3722f8d2d3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007f3722f3da08 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007f3722f26538 in __GI_abort () at abort.c:79
#4  0x00005607e81bfaa8 in handle_crash (sig=<optimized out>) at platform/linuxbsd/crash_handler_linuxbsd.cpp:141
#5  <signal handler called>
#6  0x00005607ea0e4d66 in AudioStreamEditor::_draw_preview (this=0x56080a6490d0) at ./core/templates/vector.h:52
#7  0x00005607ea0e920f in call_with_variant_args_helper<AudioStreamEditor>(AudioStreamEditor*, void (AudioStreamEditor::*)(), Variant const**, Callable::CallError&, IndexSequence<>) (p_method=<optimized out>, r_error=..., p_instance=<optimized out>, 
    p_args=<optimized out>) at ./core/variant/binder_common.h:293
#8  call_with_variant_args<AudioStreamEditor> (p_instance=<optimized out>, p_method=<optimized out>, p_argcount=-291670784, r_error=..., p_args=<optimized out>) at ./core/variant/binder_common.h:407
#9  CallableCustomMethodPointer<AudioStreamEditor>::call (this=0x560803dd6920, p_arguments=<optimized out>, p_argcount=-291670784, r_return_value=..., r_call_error=...) at ./core/object/callable_method_pointer.h:104
#10 0x00005607ec6c6d7a in Callable::callp (this=<optimized out>, p_arguments=0x5607f34b4e70, p_argcount=-291670784, r_return_value=..., r_call_error=...) at core/variant/callable.cpp:50
#11 0x00005607eca890e6 in Object::emit_signalp (this=0x56080c7dc110, p_name=..., p_args=0x0, p_argcount=0) at core/object/object.cpp:1046
#12 0x00005607ea7b9ddc in Object::emit_signal<>(StringName const&) (this=0x56080c7dc110, p_name=...) at ./core/object/object.h:869
#13 CanvasItem::_redraw_callback (this=0x56080c7dc110) at scene/main/canvas_item.cpp:136
#14 0x00005607e99949af in call_with_variant_args_helper<CanvasItem>(CanvasItem*, void (CanvasItem::*)(), Variant const**, Callable::CallError&, IndexSequence<>) (p_method=<optimized out>, r_error=..., p_instance=<optimized out>, p_args=<optimized out>)
    at ./core/variant/binder_common.h:293
#15 call_with_variant_args<CanvasItem> (p_instance=<optimized out>, p_method=<optimized out>, p_argcount=-291670784, r_error=..., p_args=<optimized out>) at ./core/variant/binder_common.h:407
#16 CallableCustomMethodPointer<CanvasItem>::call (this=0x56080c72c050, p_arguments=<optimized out>, p_argcount=-291670784, r_return_value=..., r_call_error=...) at ./core/object/callable_method_pointer.h:104
#17 0x00005607ec6c6d7a in Callable::callp (this=<optimized out>, p_arguments=0x5607f34b4e70, p_argcount=-291670784, r_return_value=..., r_call_error=...) at core/variant/callable.cpp:50
#18 0x00005607eca7f925 in MessageQueue::_call_function (this=<optimized out>, p_callable=..., p_args=p_args@entry=0x7f371b9f20f8, p_argcount=0, p_show_error=false) at core/object/message_queue.cpp:229
#19 0x00005607eca7fc0c in MessageQueue::flush (this=0x5607ee9d71b0) at core/object/message_queue.cpp:275
#20 0x00005607ea85808c in SceneTree::physics_process (this=0x5607f23a1640, p_time=<error reading variable: That operation is not available on integers of more than 8 bytes.>) at scene/main/scene_tree.cpp:430
#21 0x00005607e823f31b in Main::iteration () at main/main.cpp:3131
#22 0x00005607e81cb38d in OS_LinuxBSD::run (this=0x7ffddeb8c910) at platform/linuxbsd/os_linuxbsd.cpp:889
#23 0x00005607e81bf69c in main (argc=<optimized out>, argv=<optimized out>) at platform/linuxbsd/godot_linuxbsd.cpp:73
```

### Steps to reproduce

1. Open the example project
2. Double-click `land.wav`

### Minimal reproduction project

[example.zip](https://github.com/godotengine/godot/files/11594375/example.zip)

Size2 size = get_size();
	if ((int)size.width <= 0) {
		return; 
	}
	Rect2 rect = _preview->get_rect();
	Ref<AudioStreamPreview> preview = AudioStreamPreviewGenerator::get_singleton()->generate_preview(stream);
	float preview_len = preview->get_length();
	Vector<Vector2> points;
	points.resize((int)size.width * 2);
	for (int i = 0; i < size.width; i++) {
		float ofs = i * preview_len / size.width;
		float ofs_n = (i + 1) * preview_len / size.width;
		float max = preview->get_max(ofs, ofs_n) * 0.5 + 0.5;
		float min = preview->get_min(ofs, ofs_n) * 0.5 + 0.5;
		int idx = i;
		points.write[idx * 2 + 0] = Vector2(i + 1, rect.position.y + min * rect.size.y);
		points.write[idx * 2 + 1] = Vector2(i + 1, rect.position.y + max * rect.size.y);
	}
	Vector<Color> colors = { get_theme_color(SNAME("contrast_color_2"), SNAME("Editor")) };
	RS::get_singleton()->canvas_item_add_multiline(_preview->get_canvas_item(), points, colors);
}
void AudioStreamEditor::_preview_changed(ObjectID p_which) {
	if (stream.is_valid() && stream->get_instance_id() == p_which) {
		_preview->queue_redraw();
	}
}
void AudioStreamEditor::_stream_changed() {