浏览代码

Backport pull request #8189 from jellyfin/release-10.8.z

Fix GetItems IndexOutOfRangeException when IDs do not exist

Original-merge: 527ed0607d5f31a232293b39daac19018518b1a0

Merged-by: Claus Vium <cvium@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
Luke F 2 年之前
父节点
当前提交
e579b4d42d
共有 1 个文件被更改,包括 1 次插入23 次删除
  1. 1 23
      MediaBrowser.Controller/Entities/Folder.cs

+ 1 - 23
MediaBrowser.Controller/Entities/Folder.cs

@@ -892,29 +892,7 @@ namespace MediaBrowser.Controller.Entities
 
         private static BaseItem[] SortItemsByRequest(InternalItemsQuery query, IReadOnlyList<BaseItem> items)
         {
-            var ids = query.ItemIds;
-            int size = items.Count;
-
-            // ids can potentially contain non-unique guids, but query result cannot,
-            // so we include only first occurrence of each guid
-            var positions = new Dictionary<Guid, int>(size);
-            int index = 0;
-            for (int i = 0; i < ids.Length; i++)
-            {
-                if (positions.TryAdd(ids[i], index))
-                {
-                    index++;
-                }
-            }
-
-            var newItems = new BaseItem[size];
-            for (int i = 0; i < size; i++)
-            {
-                var item = items[i];
-                newItems[positions[item.Id]] = item;
-            }
-
-            return newItems;
+            return items.OrderBy(i => Array.IndexOf(query.ItemIds, i.Id)).ToArray();
         }
 
         public QueryResult<BaseItem> GetItems(InternalItemsQuery query)