summaryrefslogtreecommitdiffstats
path: root/model/session.go
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2018-04-20 12:25:14 -0400
committerGitHub <noreply@github.com>2018-04-20 12:25:14 -0400
commit853445dc2ea68f765faa04ad14618b04f1081c43 (patch)
tree9e9c64985a6bfb78548737d42c4d216149f1697b /model/session.go
parent283f34b9c6d207f0a103e7b4c7f6da2c7481c3ef (diff)
downloadchat-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.go17
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 &copy
+ 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 &copySession
}
func (me *Session) ToJson() string {