summaryrefslogtreecommitdiffstats
path: root/src/script.c
diff options
context:
space:
mode:
authorXANTRONIX Development2022-03-01 14:11:01 -0500
committerXANTRONIX Development2022-03-01 14:11:01 -0500
commit2364a4b2307176c31c08fff36c6e5427af06aad1 (patch)
treedcf318fca48566d868995b9cdd6cddea7d2406f0 /src/script.c
parent435f0e4f87aa25bd0ca5f605a5104692bd204a35 (diff)
downloadxas-2364a4b2307176c31c08fff36c6e5427af06aad1.tar.gz
xas-2364a4b2307176c31c08fff36c6e5427af06aad1.tar.bz2
xas-2364a4b2307176c31c08fff36c6e5427af06aad1.zip
Fix infinite loop on script runs
Diffstat (limited to 'src/script.c')
-rw-r--r--src/script.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/script.c b/src/script.c
index 798f793..51db3da 100644
--- a/src/script.c
+++ b/src/script.c
@@ -318,19 +318,18 @@ int xas_script_play(xas_script *script, xas_audio_stream *sink) {
}
while (ev) {
- xas_script_event *next = ev->next;
struct timeval tv;
ssize_t readlen;
timerupdate(&tv, interval, frame);
- if (timercmp(&ev->timestamp, &tv, >)) {
+ while (ev && !timercmp(&tv, &ev->timestamp, <)) {
if (event_trigger(script->scene, ev) < 0) {
goto error_event_trigger;
}
- ev = next;
+ ev = ev->next;
}
if ((readlen = xas_audio_stream_read(source,