diff --git a/src/BizHawk.Client.Common/movie/tasproj/TasMovieMarker.cs b/src/BizHawk.Client.Common/movie/tasproj/TasMovieMarker.cs index 5243ed6f53..1fe16aa3db 100644 --- a/src/BizHawk.Client.Common/movie/tasproj/TasMovieMarker.cs +++ b/src/BizHawk.Client.Common/movie/tasproj/TasMovieMarker.cs @@ -322,7 +322,15 @@ namespace BizHawk.Client.Common public bool IsMarker(int frame) { - return this.Any(m => m == frame); + // TODO: could use a BinarySearch here, but CollectionExtensions.BinarySearch currently throws + // an exception on failure, which is probably so expensive it nullifies any performance benefits + foreach (var marker in this) + { + if (marker.Frame > frame) return false; + if (marker.Frame == frame) return true; + } + + return false; } public TasMovieMarker Get(int frame) diff --git a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs index fd3f9dbdea..f0465545d4 100644 --- a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs +++ b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs @@ -193,7 +193,7 @@ namespace BizHawk.Client.EmuHawk offsetX = -3; offsetY = 1; - if (CurrentTasMovie.Markers.IsMarker(index) && Settings.DenoteMarkersWithIcons) + if (Settings.DenoteMarkersWithIcons && CurrentTasMovie.Markers.IsMarker(index)) { bitmap = icon_marker; } @@ -235,7 +235,7 @@ namespace BizHawk.Client.EmuHawk if (columnName == FrameColumnName) { - if (Emulator.Frame != index && CurrentTasMovie.Markers.IsMarker(index) && Settings.DenoteMarkersWithBGColor) + if (Emulator.Frame != index && Settings.DenoteMarkersWithBGColor && CurrentTasMovie.Markers.IsMarker(index)) { color = Palette.Marker_FrameCol; }