SDL_mixer: groups: Fixed linked-list logic bug in MIX_SetTrackGroup(). (e417f)

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;