Copy dictionary before enumerating, fixes crash #6

This commit is contained in:
ismailgulek
2022-04-12 14:26:52 +03:00
parent 29c5b5f6fe
commit dd01d9389a
@@ -2387,9 +2387,10 @@ typedef NS_ENUM (NSUInteger, MXKRoomDataSourceError) {
{
NSMutableDictionary<NSString* /* eventId */, NSArray<MXReceiptData*> *> *updatedCellDataReadReceipts = [NSMutableDictionary dictionary];
for (NSString *eventId in cellData.readReceipts)
NSDictionary<NSString*, NSArray<MXReceiptData*>*> *readReceiptsCopy = [cellData.readReceipts mutableDeepCopy];
for (NSString *eventId in readReceiptsCopy)
{
for (MXReceiptData *receiptData in cellData.readReceipts[eventId])
for (MXReceiptData *receiptData in readReceiptsCopy[eventId])
{
for (NSString *senderId in readReceiptSenders)
{
@@ -2397,7 +2398,7 @@ typedef NS_ENUM (NSUInteger, MXKRoomDataSourceError) {
{
if (!updatedCellDataReadReceipts[eventId])
{
updatedCellDataReadReceipts[eventId] = cellData.readReceipts[eventId];
updatedCellDataReadReceipts[eventId] = readReceiptsCopy[eventId];
}
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"userId!=%@", receiptData.userId];