Fix potential infinite loop on state.

This commit is contained in:
Chris Rhodes 2016-04-01 11:31:10 -07:00
parent a40bf8952c
commit 99a1f5665a

View file

@ -12,10 +12,7 @@
package discordgo package discordgo
import ( import "errors"
"errors"
"log"
)
// ErrNilState is returned when the state is nil. // ErrNilState is returned when the state is nil.
var ErrNilState = errors.New("State not instantiated, please use discordgo.New() or assign Session.State.") var ErrNilState = errors.New("State not instantiated, please use discordgo.New() or assign Session.State.")
@ -429,14 +426,7 @@ func (s *State) MessageAdd(message *Message) error {
c.Messages = append(c.Messages, message) c.Messages = append(c.Messages, message)
if len(c.Messages) > s.MaxMessageCount { if len(c.Messages) > s.MaxMessageCount {
s.Unlock() c.Messages = c.Messages[len(c.Messages)-s.MaxMessageCount:]
for len(c.Messages) > s.MaxMessageCount {
err := s.MessageRemove(c.Messages[0])
if err != nil {
log.Println("message remove error: ", err)
}
}
s.Lock()
} }
return nil return nil
} }