diff --git a/vendor/manifest b/vendor/manifest index f252c6a3b..61f8d20aa 100644 --- a/vendor/manifest +++ b/vendor/manifest @@ -92,7 +92,7 @@ { "importpath": "github.com/matrix-org/gomatrixserverlib", "repository": "https://github.com/matrix-org/gomatrixserverlib", - "revision": "131b3e83fe053bc40f6909226b8c3c1d186799c1", + "revision": "775bc0b4341689c9fbb573008c3095495738f092", "branch": "master" }, { @@ -206,4 +206,4 @@ "branch": "master" } ] -} +} \ No newline at end of file diff --git a/vendor/src/github.com/matrix-org/gomatrixserverlib/stateresolution.go b/vendor/src/github.com/matrix-org/gomatrixserverlib/stateresolution.go index cac03cf3a..3091acd7c 100644 --- a/vendor/src/github.com/matrix-org/gomatrixserverlib/stateresolution.go +++ b/vendor/src/github.com/matrix-org/gomatrixserverlib/stateresolution.go @@ -11,6 +11,8 @@ import ( // and works out which event should be used for each state event. func ResolveStateConflicts(conflicted []Event, authEvents []Event) []Event { var r stateResolver + r.resolvedThirdPartyInvites = map[string]*Event{} + r.resolvedMembers = map[string]*Event{} // Group the conflicted events by type and state key. r.addConflicted(conflicted) // Add the unconflicted auth events needed for auth checks. @@ -124,6 +126,7 @@ func (r *stateResolver) addConflicted(events []Event) { // new block to the block list. offset = len(*blockList) *blockList = append(*blockList, nil) + offsets[key] = offset } // Get the address of the block in the block list. block := &(*blockList)[offset] @@ -187,6 +190,9 @@ func (r *stateResolver) removeAuthEvent(eventType, stateKey string) { func (r *stateResolver) resolveAndAddAuthBlocks(blocks [][]Event) { start := len(r.result) for _, block := range blocks { + if len(block) == 0 { + continue + } if event := r.resolveAuthBlock(block); event != nil { r.result = append(r.result, *event) }