mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-15 10:03:09 -06:00
Fix "gomatrixserverlib.PDU is nil, not *types.HeaderedEvent" panic
This commit is contained in:
parent
cc9b695c1e
commit
ca8fa0188d
|
|
@ -370,18 +370,24 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
|
||||||
gomatrixserverlib.ToPDUs(removeDuplicates(delta.StateEvents, events)),
|
gomatrixserverlib.ToPDUs(removeDuplicates(delta.StateEvents, events)),
|
||||||
gomatrixserverlib.TopologicalOrderByAuthEvents,
|
gomatrixserverlib.TopologicalOrderByAuthEvents,
|
||||||
)
|
)
|
||||||
delta.StateEvents = make([]*rstypes.HeaderedEvent, len(sEvents))
|
delta.StateEvents = make([]*rstypes.HeaderedEvent, 0, len(sEvents))
|
||||||
|
var skipped int
|
||||||
for i := range sEvents {
|
for i := range sEvents {
|
||||||
ev := sEvents[i]
|
ev := sEvents[i]
|
||||||
delta.StateEvents[i] = ev.(*rstypes.HeaderedEvent)
|
he, ok := ev.(*rstypes.HeaderedEvent)
|
||||||
|
if !ok {
|
||||||
|
skipped++
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
delta.StateEvents[i-skipped] = he
|
||||||
// update the powerlevel event for state events
|
// update the powerlevel event for state events
|
||||||
if ev.Version() == gomatrixserverlib.RoomVersionPseudoIDs && ev.Type() == spec.MRoomPowerLevels && ev.StateKeyEquals("") {
|
if ev.Version() == gomatrixserverlib.RoomVersionPseudoIDs && ev.Type() == spec.MRoomPowerLevels && ev.StateKeyEquals("") {
|
||||||
var newEvent gomatrixserverlib.PDU
|
var newEvent gomatrixserverlib.PDU
|
||||||
newEvent, err = p.updatePowerLevelEvent(ctx, ev.(*rstypes.HeaderedEvent))
|
newEvent, err = p.updatePowerLevelEvent(ctx, he)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return r.From, err
|
return r.From, err
|
||||||
}
|
}
|
||||||
delta.StateEvents[i] = &rstypes.HeaderedEvent{PDU: newEvent}
|
delta.StateEvents[i-skipped] = &rstypes.HeaderedEvent{PDU: newEvent}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue