fix ID out of bounds detection; less unnecessary code

This commit is contained in:
r4 2021-07-28 19:32:28 +02:00
parent f17522a5d1
commit 2e7dd71bad
2 changed files with 8 additions and 14 deletions

View File

@ -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) {

14
main.go
View File

@ -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.
////////////////////////////////