From 43e63b854be2e0d5b67ad6c084a38a18582b79f9 Mon Sep 17 00:00:00 2001 From: MysterD Date: Thu, 20 Apr 2023 21:43:42 -0700 Subject: [PATCH] Fixed crash in note_pool_clear() --- src/audio/playback.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/audio/playback.c b/src/audio/playback.c index 5d1797401..6f52d20b7 100644 --- a/src/audio/playback.c +++ b/src/audio/playback.c @@ -951,13 +951,16 @@ void init_note_free_list(void) { } void note_pool_clear(struct NotePool *pool) { + if (!pool) { return; } s32 i; - struct AudioListItem *source; - struct AudioListItem *cur; - struct AudioListItem *dest; + struct AudioListItem *source = NULL; + struct AudioListItem *cur = NULL; + struct AudioListItem *dest = NULL; UNUSED s32 j; // unused in EU for (i = 0; i < 4; i++) { + source = NULL; + dest = NULL; switch (i) { case 0: source = &pool->disabled; @@ -979,7 +982,7 @@ void note_pool_clear(struct NotePool *pool) { dest = &gNoteFreeLists.active; break; } - + if (!source || !dest) { continue; } #if defined(VERSION_EU) || defined(VERSION_SH) for (;;) { cur = source->next;