Files
godot/scene/2d
Lyuma c088a2dd89 Fix crash due to reentrancy in AudioStreamPlayer* finished signal.
This crash occurred when an audio stream finished playing in NOTIFICATION_INTERNAL_PROCESS,
during which it would iterate through a loop of playbacks,
leading to a "finished" signal, which removed the audio player from the tree
which led to a NOTIFICATION_EXIT_TREE,
which would mutate the array of playbacks while within the above loop.

This moves the signal callback outside of the loop which avoids the crash.
Note: previously, the signal was called multiple times if the same player finishes multiple times in one frame. Now it is at most once per frame.

Affects AudioStreamPlayer, AudioStreamPlayer2D and AudioStreamPlayer3D
2021-10-28 19:45:29 -07:00
..
2021-08-13 00:27:38 -05:00
2021-08-13 00:27:38 -05:00
2021-08-13 00:27:38 -05:00
2021-10-21 15:18:52 +02:00
2021-10-21 15:18:52 +02:00
2021-08-13 00:27:38 -05:00
2021-08-13 00:27:38 -05:00
2021-08-09 17:43:48 -05:00
2021-08-13 00:27:38 -05:00
2021-05-23 21:38:27 +02:00