mirror of
https://github.com/ergochat/ergo.git
synced 2024-12-22 18:52:41 +01:00
fix crash in whowas circular buffer
This commit is contained in:
parent
142bf3d3bb
commit
cab21782b4
@ -1,7 +1,7 @@
|
||||
package irc
|
||||
|
||||
const (
|
||||
SEM_VER = "ergonomadic-1.4.2"
|
||||
SEM_VER = "ergonomadic-1.4.3"
|
||||
CRLF = "\r\n"
|
||||
MAX_REPLY_LEN = 512 - len(CRLF)
|
||||
|
||||
|
@ -2,8 +2,8 @@ package irc
|
||||
|
||||
type WhoWasList struct {
|
||||
buffer []*WhoWas
|
||||
start uint
|
||||
end uint
|
||||
start int
|
||||
end int
|
||||
}
|
||||
|
||||
type WhoWas struct {
|
||||
@ -26,9 +26,9 @@ func (list *WhoWasList) Append(client *Client) {
|
||||
hostname: client.hostname,
|
||||
realname: client.realname,
|
||||
}
|
||||
list.end = (list.end + 1) % uint(len(list.buffer))
|
||||
list.end = (list.end + 1) % len(list.buffer)
|
||||
if list.end == list.start {
|
||||
list.start = (list.end + 1) % uint(len(list.buffer))
|
||||
list.start = (list.end + 1) % len(list.buffer)
|
||||
}
|
||||
}
|
||||
|
||||
@ -46,10 +46,10 @@ func (list *WhoWasList) Find(nickname Name, limit int64) []*WhoWas {
|
||||
return results
|
||||
}
|
||||
|
||||
func (list *WhoWasList) prev(index uint) uint {
|
||||
func (list *WhoWasList) prev(index int) int {
|
||||
index -= 1
|
||||
if index < 0 {
|
||||
index += uint(len(list.buffer))
|
||||
index += len(list.buffer)
|
||||
}
|
||||
return index
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user