Merge pull request #1133 from strukturag/unnecessary-pointer

No need to use list of pointers, use objects directly.
This commit is contained in:
Joachim Bauch 2025-11-24 15:22:53 +01:00 committed by GitHub
commit a13ca9c9dd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 34 additions and 52 deletions

View file

@ -724,6 +724,9 @@ type MessageClientMessage struct {
}
type MessageClientMessageData struct {
json.Marshaler
json.Unmarshaler
Type string `json:"type"`
Sid string `json:"sid"`
RoomType string `json:"roomType"`
@ -1196,11 +1199,11 @@ type EventServerMessage struct {
Type string `json:"type"`
// Used for target "room"
Join []*EventServerMessageSessionEntry `json:"join,omitempty"`
Leave []PublicSessionId `json:"leave,omitempty"`
Change []*EventServerMessageSessionEntry `json:"change,omitempty"`
SwitchTo *EventServerMessageSwitchTo `json:"switchto,omitempty"`
Resumed *bool `json:"resumed,omitempty"`
Join []EventServerMessageSessionEntry `json:"join,omitempty"`
Leave []PublicSessionId `json:"leave,omitempty"`
Change []EventServerMessageSessionEntry `json:"change,omitempty"`
SwitchTo *EventServerMessageSwitchTo `json:"switchto,omitempty"`
Resumed *bool `json:"resumed,omitempty"`
// Used for target "roomlist" / "participants"
Invite *RoomEventServerMessage `json:"invite,omitempty"`
@ -1229,8 +1232,8 @@ type EventServerMessageSessionEntry struct {
Federated bool `json:"federated,omitempty"`
}
func (e *EventServerMessageSessionEntry) Clone() *EventServerMessageSessionEntry {
return &EventServerMessageSessionEntry{
func (e EventServerMessageSessionEntry) Clone() EventServerMessageSessionEntry {
return EventServerMessageSessionEntry{
SessionId: e.SessionId,
UserId: e.UserId,
Features: e.Features,

View file

@ -4425,27 +4425,19 @@ func easyjson29f189fbDecodeGithubComStrukturagNextcloudSpreedSignaling36(in *jle
in.Delim('[')
if out.Join == nil {
if !in.IsDelim(']') {
out.Join = make([]*EventServerMessageSessionEntry, 0, 8)
out.Join = make([]EventServerMessageSessionEntry, 0, 0)
} else {
out.Join = []*EventServerMessageSessionEntry{}
out.Join = []EventServerMessageSessionEntry{}
}
} else {
out.Join = (out.Join)[:0]
}
for !in.IsDelim(']') {
var v34 *EventServerMessageSessionEntry
var v34 EventServerMessageSessionEntry
if in.IsNull() {
in.Skip()
v34 = nil
} else {
if v34 == nil {
v34 = new(EventServerMessageSessionEntry)
}
if in.IsNull() {
in.Skip()
} else {
(*v34).UnmarshalEasyJSON(in)
}
(v34).UnmarshalEasyJSON(in)
}
out.Join = append(out.Join, v34)
in.WantComma()
@ -4487,27 +4479,19 @@ func easyjson29f189fbDecodeGithubComStrukturagNextcloudSpreedSignaling36(in *jle
in.Delim('[')
if out.Change == nil {
if !in.IsDelim(']') {
out.Change = make([]*EventServerMessageSessionEntry, 0, 8)
out.Change = make([]EventServerMessageSessionEntry, 0, 0)
} else {
out.Change = []*EventServerMessageSessionEntry{}
out.Change = []EventServerMessageSessionEntry{}
}
} else {
out.Change = (out.Change)[:0]
}
for !in.IsDelim(']') {
var v36 *EventServerMessageSessionEntry
var v36 EventServerMessageSessionEntry
if in.IsNull() {
in.Skip()
v36 = nil
} else {
if v36 == nil {
v36 = new(EventServerMessageSessionEntry)
}
if in.IsNull() {
in.Skip()
} else {
(*v36).UnmarshalEasyJSON(in)
}
(v36).UnmarshalEasyJSON(in)
}
out.Change = append(out.Change, v36)
in.WantComma()
@ -4645,11 +4629,7 @@ func easyjson29f189fbEncodeGithubComStrukturagNextcloudSpreedSignaling36(out *jw
if v37 > 0 {
out.RawByte(',')
}
if v38 == nil {
out.RawString("null")
} else {
(*v38).MarshalEasyJSON(out)
}
(v38).MarshalEasyJSON(out)
}
out.RawByte(']')
}
@ -4677,11 +4657,7 @@ func easyjson29f189fbEncodeGithubComStrukturagNextcloudSpreedSignaling36(out *jw
if v41 > 0 {
out.RawByte(',')
}
if v42 == nil {
out.RawString("null")
} else {
(*v42).MarshalEasyJSON(out)
}
(v42).MarshalEasyJSON(out)
}
out.RawByte(']')
}

View file

@ -1178,8 +1178,8 @@ func (s *ClientSession) storePendingMessage(message *ServerMessage) {
}
}
func filterDisplayNames(events []*EventServerMessageSessionEntry) []*EventServerMessageSessionEntry {
result := make([]*EventServerMessageSessionEntry, 0, len(events))
func filterDisplayNames(events []EventServerMessageSessionEntry) []EventServerMessageSessionEntry {
result := make([]EventServerMessageSessionEntry, 0, len(events))
for _, event := range events {
if len(event.User) == 0 {
result = append(result, event)
@ -1219,14 +1219,14 @@ func filterDisplayNames(events []*EventServerMessageSessionEntry) []*EventServer
return result
}
func (s *ClientSession) filterDuplicateJoin(entries []*EventServerMessageSessionEntry) []*EventServerMessageSessionEntry {
func (s *ClientSession) filterDuplicateJoin(entries []EventServerMessageSessionEntry) []EventServerMessageSessionEntry {
s.seenJoinedLock.Lock()
defer s.seenJoinedLock.Unlock()
// Due to the asynchronous events, a session might received a "Joined" event
// for the same (other) session twice, so filter these out on a per-session
// level.
result := make([]*EventServerMessageSessionEntry, 0, len(entries))
result := make([]EventServerMessageSessionEntry, 0, len(entries))
for _, e := range entries {
if s.seenJoinedEvents[e.SessionId] {
s.logger.Printf("Session %s got duplicate joined event for %s, ignoring", s.publicId, e.SessionId)

View file

@ -803,9 +803,10 @@ func (c *FederationClient) processMessage(msg *ServerMessage) {
switch msg.Event.Type {
case "join":
if remoteSessionId != "" {
for _, j := range msg.Event.Join {
for idx, j := range msg.Event.Join {
if j.SessionId == remoteSessionId {
j.SessionId = localSessionId
msg.Event.Join[idx] = j
break
}
}

View file

@ -383,9 +383,9 @@ func (r *Room) notifySessionJoined(sessionId PublicSessionId) {
session = nil
}
events := make([]*EventServerMessageSessionEntry, 0, len(sessions))
events := make([]EventServerMessageSessionEntry, 0, len(sessions))
for _, s := range sessions {
entry := &EventServerMessageSessionEntry{
entry := EventServerMessageSessionEntry{
SessionId: s.PublicId(),
UserId: s.UserId(),
User: s.UserData(),
@ -561,7 +561,7 @@ func (r *Room) PublishSessionJoined(session Session, sessionData *RoomSessionDat
Event: &EventServerMessage{
Target: "room",
Type: "join",
Join: []*EventServerMessageSessionEntry{
Join: []EventServerMessageSessionEntry{
{
SessionId: sessionId,
UserId: userid,

View file

@ -847,8 +847,8 @@ func (c *TestClient) checkMessageJoinedSession(message *ServerMessage, sessionId
return !failed
}
func (c *TestClient) RunUntilJoinedAndReturn(ctx context.Context, hello ...*HelloServerMessage) ([]*EventServerMessageSessionEntry, []*ServerMessage, bool) {
received := make([]*EventServerMessageSessionEntry, len(hello))
func (c *TestClient) RunUntilJoinedAndReturn(ctx context.Context, hello ...*HelloServerMessage) ([]EventServerMessageSessionEntry, []*ServerMessage, bool) {
received := make([]EventServerMessageSessionEntry, len(hello))
var ignored []*ServerMessage
hellos := make(map[*HelloServerMessage]int, len(hello))
for idx, h := range hello {
@ -886,7 +886,9 @@ func (c *TestClient) RunUntilJoinedAndReturn(ctx context.Context, hello ...*Hell
}
}
}
c.assert.True(found, "expected one of the passed hello sessions, got %+v", message.Event.Join)
if !c.assert.True(found, "expected one of the passed hello sessions, got %+v", message.Event.Join) {
break
}
}
}
return received, ignored, true