diff --git a/Riot/Modules/Common/Recents/DataSources/RecentsDataSource.m b/Riot/Modules/Common/Recents/DataSources/RecentsDataSource.m index b9feee410..a219ab3c9 100644 --- a/Riot/Modules/Common/Recents/DataSources/RecentsDataSource.m +++ b/Riot/Modules/Common/Recents/DataSources/RecentsDataSource.m @@ -421,9 +421,12 @@ NSString *const kRecentsDataSourceTapOnDirectoryServerChange = @"kRecentsDataSou if ((aState == MXKDataSourceStateReady) && dataSource.mxSession.myUser.userId) { // Register the room tags updates to refresh the favorites order + MXWeakify(self); id roomTagsListener = [dataSource.mxSession listenToEventsOfTypes:@[kMXEventTypeStringRoomTag] onEvent:^(MXEvent *event, MXTimelineDirection direction, id customObject) { + MXStrongifyAndReturnIfNil(self); + // Consider only live event if (direction == MXTimelineDirectionForwards) { diff --git a/changelog.d/pr-4193.bugfix b/changelog.d/pr-4193.bugfix new file mode 100644 index 000000000..10e269cb8 --- /dev/null +++ b/changelog.d/pr-4193.bugfix @@ -0,0 +1 @@ +RecentsDataSource: Memory leak in [RecentsDataSource dataSource:didStateChange:]. \ No newline at end of file