From e417f395c99a4c371442caf380a918529e9d097d Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Mon, 18 May 2026 19:21:03 -0400
Subject: [PATCH] groups: Fixed linked-list logic bug in MIX_SetTrackGroup().
Fixes #856.
(cherry picked from commit d71a3c926d8d846a48d284ed806d6cd29bca5789)
---
src/SDL_mixer.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/SDL_mixer.c b/src/SDL_mixer.c
index 242d6412..a042f422 100644
--- a/src/SDL_mixer.c
+++ b/src/SDL_mixer.c
@@ -2999,17 +2999,17 @@ bool MIX_SetTrackGroup(MIX_Track *track, MIX_Group *group)
MIX_Group *oldgroup = track->group;
if (group != oldgroup) {
if (oldgroup) { // remove from current group, if in one.
+ if (track->group_next) {
+ track->group_next->group_prev = track->group_prev;
+ }
if (track->group_prev) {
track->group_prev->group_next = track->group_next;
- track->group_prev = NULL;
} else {
oldgroup->tracks = track->group_next;
}
- if (track->group_next) {
- track->group_next->group_prev = track->group_prev;
- }
}
+ track->group_prev = NULL;
track->group_next = group->tracks;
if (group->tracks) {
group->tracks->group_prev = track;