From 6d06dcd5d24f3b890f935ffc14130cad8ef006e1 Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Fri, 29 Mar 2024 18:56:56 +0100 Subject: [PATCH] Fix BinarySearch test failures --- src/BizHawk.Common/Extensions/CollectionExtensions.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/BizHawk.Common/Extensions/CollectionExtensions.cs b/src/BizHawk.Common/Extensions/CollectionExtensions.cs index 90c2696aae..49b2f2fc1a 100644 --- a/src/BizHawk.Common/Extensions/CollectionExtensions.cs +++ b/src/BizHawk.Common/Extensions/CollectionExtensions.cs @@ -28,12 +28,13 @@ namespace BizHawk.Common.CollectionExtensions public static int LowerBoundBinarySearch(this IList list, Func keySelector, TKey key) where TKey : IComparable { + if (list.Count is 0) return -1; + int min = 0; int max = list.Count - 1; - int mid; while (min < max) { - mid = (max + min) / 2; + int mid = (max + min) / 2; T midItem = list[mid]; var midKey = keySelector(midItem); int comp = midKey.CompareTo(key); @@ -69,7 +70,7 @@ namespace BizHawk.Common.CollectionExtensions where TKey : IComparable { int min = 0; - int max = list.Count; + int max = list.Count - 1; while (min < max) { int mid = (max + min) / 2;