diff --git a/server/imserver_new/guild/guild.go b/server/imserver_new/guild/guild.go index 2cc1738b..95a945cb 100644 --- a/server/imserver_new/guild/guild.go +++ b/server/imserver_new/guild/guild.go @@ -183,8 +183,8 @@ func (this *guild) asyncLeave(accountId string, cb func(int32, string)) { cb(500, "server internal error") return } - delete(this.idHash, m.memberId) - delete(_guildMgr.memberIdHash, m.memberId) + this.delMember(m.memberId) + _guildMgr.delGuildMember(m.memberId) if m.guildJob == constant.GuildMemberLevelLeader { var nextLeader *member this.traverseMembers( @@ -276,6 +276,10 @@ func (this *guild) getOwnerId() string { return ownerId } +func (this *guild) delMember(memberId string) { + delete(this.idHash, memberId) +} + func newGuild() *guild { p := new(guild) p.idHash = make(map[string]*member) diff --git a/server/imserver_new/guild/guildmgr.go b/server/imserver_new/guild/guildmgr.go index d27d0f5d..25a7505f 100644 --- a/server/imserver_new/guild/guildmgr.go +++ b/server/imserver_new/guild/guildmgr.go @@ -875,11 +875,15 @@ func (this *guildMgr) createGuildAndAddOwner(guildId string, guildName string, c } } -func (this* guildMgr) addGuild(g *guild) { +func (this *guildMgr) addGuild(g *guild) { this.idHash[g.guildId] = g this.nameHash[g.guildName] = g } -func (this* guildMgr) addGuildMember(m *member) { +func (this *guildMgr) addGuildMember(m *member) { this.memberIdHash[m.memberId] = m } + +func (this *guildMgr) delGuildMember(memberId string) { + delete(this.memberIdHash, memberId) +}