Potential fix for a crash when 2 present room events are sent in quick succession. (#3001)

This commit is contained in:
Doug 2024-07-08 09:44:15 +01:00 committed by GitHub
parent 7ca8faeb4e
commit 25dc96040c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -214,6 +214,7 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
fatalError("Trying to create different room proxies for the same flow coordinator")
}
MXLog.warning("Found an existing proxy, returning.")
return
}
@ -221,9 +222,12 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol {
fatalError("Requesting room details for an unjoined room")
}
self.roomProxy = roomProxy
await roomProxy.subscribeForUpdates()
// Make sure not to set this until after the subscription has succeeded, otherwise the
// early return above could result in trying to access the room's timeline provider
// before it has been set which triggers a fatal error.
self.roomProxy = roomProxy
}
// swiftlint:disable:next function_body_length