fix(tracker): OOB checks used index > len, but should've used >=

This commit is contained in:
5684185+vsariola@users.noreply.github.com 2025-05-20 19:05:17 +03:00
parent afb1fee4ed
commit 448bc9f236

View File

@ -2,9 +2,10 @@ package tracker
import ( import (
"fmt" "fmt"
"github.com/vsariola/sointu"
"iter" "iter"
"slices" "slices"
"github.com/vsariola/sointu"
) )
/* /*
@ -88,21 +89,21 @@ func (m *Model) ParameterInfo(unitId int, paramName string) (isSendTarget bool,
} }
func (m *Model) TrackTitle(index int) string { func (m *Model) TrackTitle(index int) string {
if index < 0 || index > len(m.derived.forTrack) { if index < 0 || index >= len(m.derived.forTrack) {
return "" return ""
} }
return m.derived.forTrack[index].title return m.derived.forTrack[index].title
} }
func (m *Model) PatternUseCount(index int) []int { func (m *Model) PatternUseCount(index int) []int {
if index < 0 || index > len(m.derived.forPattern) { if index < 0 || index >= len(m.derived.forPattern) {
return nil return nil
} }
return m.derived.forPattern[index].useCount return m.derived.forPattern[index].useCount
} }
func (m *Model) PatternUnique(t, p int) bool { func (m *Model) PatternUnique(t, p int) bool {
if t < 0 || t > len(m.derived.forPattern) { if t < 0 || t >= len(m.derived.forPattern) {
return false return false
} }
forPattern := m.derived.forPattern[t] forPattern := m.derived.forPattern[t]
@ -116,7 +117,7 @@ func (m *Model) PatternUnique(t, p int) bool {
func (m *Model) TracksWithSameInstrumentAsCurrent() []int { func (m *Model) TracksWithSameInstrumentAsCurrent() []int {
currentTrack := m.d.Cursor.Track currentTrack := m.d.Cursor.Track
if currentTrack > len(m.derived.forTrack) { if currentTrack >= len(m.derived.forTrack) {
return nil return nil
} }
return m.derived.forTrack[currentTrack].tracksWithSameInstrument return m.derived.forTrack[currentTrack].tracksWithSameInstrument