commit 1b5f3c6ecf56ac266d697eed117beb2a12171349
parent b5a9d141a1dd0432695e93645a1d27033d8fe18c
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Thu, 25 May 2023 22:34:21 -0700
avoid allocations
Diffstat:
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/pkg/managers/managers.go b/pkg/managers/managers.go
@@ -67,9 +67,12 @@ func (m UserInfo) MarshalJSON() ([]byte, error) {
type UsersMap map[string]UserInfo // Username -> UserInfo
-func (m UsersMap) ToArray() (out []UserInfo) {
+func (m UsersMap) ToArray() []UserInfo {
+ out := make([]UserInfo, len(m))
+ i := 0
for _, userInfo := range m {
- out = append(out, userInfo)
+ out[i] = userInfo
+ i++
}
sort.Slice(out, func(i, j int) bool {
if out[i].LastActivity != nil && out[j].LastActivity != nil {
@@ -81,7 +84,7 @@ func (m UsersMap) ToArray() (out []UserInfo) {
}
return out[i].Username < out[j].Username
})
- return
+ return out
}
const privateRoomKeyPrefix = "p_"