diff options
author | Joram Wilander <jwawilander@gmail.com> | 2018-04-20 12:25:14 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-20 12:25:14 -0400 |
commit | 853445dc2ea68f765faa04ad14618b04f1081c43 (patch) | |
tree | 9e9c64985a6bfb78548737d42c4d216149f1697b /model/session.go | |
parent | 283f34b9c6d207f0a103e7b4c7f6da2c7481c3ef (diff) | |
download | chat-853445dc2ea68f765faa04ad14618b04f1081c43.tar.gz chat-853445dc2ea68f765faa04ad14618b04f1081c43.tar.bz2 chat-853445dc2ea68f765faa04ad14618b04f1081c43.zip |
Properly implement session deep copy (#8602)
Diffstat (limited to 'model/session.go')
-rw-r--r-- | model/session.go | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/model/session.go b/model/session.go index a407af26a..7c6bbe06d 100644 --- a/model/session.go +++ b/model/session.go @@ -38,8 +38,21 @@ type Session struct { } func (me *Session) DeepCopy() *Session { - copy := *me - return © + copySession := *me + + if me.Props != nil { + copySession.Props = CopyStringMap(me.Props) + } + + if me.TeamMembers != nil { + copySession.TeamMembers = make([]*TeamMember, len(me.TeamMembers)) + for index, tm := range me.TeamMembers { + copySession.TeamMembers[index] = new(TeamMember) + *copySession.TeamMembers[index] = *tm + } + } + + return ©Session } func (me *Session) ToJson() string { |