aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--roomserver/storage/shared/storage.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/roomserver/storage/shared/storage.go b/roomserver/storage/shared/storage.go
index b4fc15f1..3685332f 100644
--- a/roomserver/storage/shared/storage.go
+++ b/roomserver/storage/shared/storage.go
@@ -165,14 +165,21 @@ func (d *Database) AddState(
if berr != nil {
return 0, fmt.Errorf("d.StateBlockTable.BulkSelectStateBlockEntries: %w", berr)
}
+ var found bool
for i := len(state) - 1; i >= 0; i-- {
+ found = false
for _, events := range blocks {
for _, event := range events {
if state[i].EventNID == event {
- state = append(state[:i], state[i+1:]...)
+ found = true
+ break
}
}
}
+ if found {
+ state = append(state[:i], state[i+1:]...)
+ i--
+ }
}
}
err = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error {