From 2e7dd71bad681770f12e4147d6809ff253b885b8 Mon Sep 17 00:00:00 2001 From: r4 Date: Wed, 28 Jul 2021 19:32:28 +0200 Subject: [PATCH] fix ID out of bounds detection; less unnecessary code --- commands.go | 8 ++++++-- main.go | 14 ++------------ 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/commands.go b/commands.go index 0ed7ae7..5e64593 100644 --- a/commands.go +++ b/commands.go @@ -490,8 +490,12 @@ func commandSwap(c *Client, args []string) { id-- ids[i] = int(id) } - c.Messagef("Swapping: %d and %d.", ids[0]+1, ids[1]+1) - c.QueueSwap(ids[0], ids[1]) + if c.QueueSwap(ids[0], ids[1]) { + c.Messagef("Swapped %d and %d.", ids[0]+1, ids[1]+1) + } else { + c.Messagef("ID out of bounds.") + return + } } func commandShuffle(c *Client) { diff --git a/main.go b/main.go index a7981ae..3c1d2e7 100644 --- a/main.go +++ b/main.go @@ -130,7 +130,7 @@ func (c *Client) QueueLen() int { // ok field returns false if the index is out of bounds. func (c *Client) QueueAt(i int) (t Track, ok bool) { l := c.QueueLen() - if i >= l { + if i >= l || i < 0 { return Track{}, false } c.RLock() @@ -180,7 +180,7 @@ func (c *Client) QueueSwap(a, b int) bool { return true } l := c.QueueLen() - if a >= l || b >= l { + if a >= l || b >= l || a < 0 || b < 0 { return false } c.Lock() @@ -195,16 +195,6 @@ func (c *Client) QueueClear() { c.Unlock() } -func (c *Client) QueueFront() (t Track, ok bool) { - c.Lock() - defer c.Unlock() - if len(c.Queue) == 0 { - return Track{}, false - } - ret := *c.Queue[0] - return ret, true -} - //////////////////////////////// // Global variables. ////////////////////////////////