3
0
mirror of https://github.com/ergochat/ergo.git synced 2024-11-10 22:19:31 +01:00

fix crash in whowas circular buffer

This commit is contained in:
Jeremy Latt 2014-04-10 11:53:34 -07:00
parent 142bf3d3bb
commit cab21782b4
2 changed files with 7 additions and 7 deletions

View File

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

View File

@ -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
}