Skip to content

Commit a0efed8

Browse files
authored
Merge commit from fork
Detect cycles when looking for predecessor rooms
2 parents 1ae0c2f + e0ef467 commit a0efed8

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

src/client.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5587,10 +5587,15 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
55875587

55885588
private findPredecessorRooms(room: Room, verifyLinks: boolean, msc3946ProcessDynamicPredecessor: boolean): Room[] {
55895589
const ret: Room[] = [];
5590+
const seenRoomIDs = new Set<string>([room.roomId]);
55905591

55915592
// Work backwards from newer to older rooms
55925593
let predecessorRoomId = room.findPredecessor(msc3946ProcessDynamicPredecessor)?.roomId;
55935594
while (predecessorRoomId !== null) {
5595+
if (predecessorRoomId) {
5596+
if (seenRoomIDs.has(predecessorRoomId)) break;
5597+
seenRoomIDs.add(predecessorRoomId);
5598+
}
55945599
const predecessorRoom = this.getRoom(predecessorRoomId);
55955600
if (predecessorRoom === null) {
55965601
break;

0 commit comments

Comments
 (0)