Fix crash when passing null to AudioStreamPlayer::set_stream()

This commit is contained in:
Pedro J. Estébanez 2022-04-03 11:03:35 +02:00
parent fa9b77dbe3
commit 9e2d5120c1
3 changed files with 12 additions and 3 deletions

View File

@ -272,7 +272,10 @@ void AudioStreamPlayer2D::_notification(int p_what) {
void AudioStreamPlayer2D::set_stream(Ref<AudioStream> p_stream) {
// Instancing audio streams can cause large memory allocations, do it prior to AudioServer::lock.
Ref<AudioStreamPlayback> pre_instanced_playback = p_stream->instance_playback();
Ref<AudioStreamPlayback> pre_instanced_playback;
if (p_stream.is_valid()) {
pre_instanced_playback = p_stream->instance_playback();
}
AudioServer::get_singleton()->lock();

View File

@ -623,7 +623,10 @@ void AudioStreamPlayer3D::_notification(int p_what) {
void AudioStreamPlayer3D::set_stream(Ref<AudioStream> p_stream) {
// Instancing audio streams can cause large memory allocations, do it prior to AudioServer::lock.
Ref<AudioStreamPlayback> pre_instanced_playback = p_stream->instance_playback();
Ref<AudioStreamPlayback> pre_instanced_playback;
if (p_stream.is_valid()) {
pre_instanced_playback = p_stream->instance_playback();
}
AudioServer::get_singleton()->lock();

View File

@ -168,7 +168,10 @@ void AudioStreamPlayer::_notification(int p_what) {
void AudioStreamPlayer::set_stream(Ref<AudioStream> p_stream) {
// Instancing audio streams can cause large memory allocations, do it prior to AudioServer::lock.
Ref<AudioStreamPlayback> pre_instanced_playback = p_stream->instance_playback();
Ref<AudioStreamPlayback> pre_instanced_playback;
if (p_stream.is_valid()) {
pre_instanced_playback = p_stream->instance_playback();
}
AudioServer::get_singleton()->lock();