From 4fd6e4b12f7bfd2e3a5fa0151880b2749f130eb0 Mon Sep 17 00:00:00 2001 From: Artem Grintsevich Date: Fri, 13 Feb 2026 10:47:22 +0100 Subject: [PATCH] fix: fixed dict and array enumeration for clone method --- ios/RCTWebRTC/WebRTCModule+RTCMediaStream.m | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.m b/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.m index d828f4260..199b89353 100644 --- a/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.m +++ b/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.m @@ -519,9 +519,10 @@ - (void)removeLocalVideoTrackDimensionDetection:(RTCVideoTrack *)videoTrack { RTCAudioTrack *audioTrack = [self.peerConnectionFactory audioTrackWithTrackId:trackUUID]; audioTrack.isEnabled = originalTrack.isEnabled; [self.localTracks setObject:audioTrack forKey:trackUUID]; - for (NSString* streamId in self.localStreams) { + for (NSString* streamId in [self.localStreams allKeys]) { RTCMediaStream* stream = [self.localStreams objectForKey:streamId]; - for (RTCAudioTrack* track in stream.audioTracks) { + if (stream == nil) continue; + for (RTCAudioTrack* track in [stream.audioTracks copy]) { if ([trackID isEqualToString:track.trackId]) { [stream addAudioTrack:audioTrack]; } @@ -537,9 +538,10 @@ - (void)removeLocalVideoTrackDimensionDetection:(RTCVideoTrack *)videoTrack { [self addLocalVideoTrackDimensionDetection:videoTrack]; [self.localTracks setObject:videoTrack forKey:trackUUID]; - for (NSString* streamId in self.localStreams) { + for (NSString* streamId in [self.localStreams allKeys]) { RTCMediaStream* stream = [self.localStreams objectForKey:streamId]; - for (RTCVideoTrack* track in stream.videoTracks) { + if (stream == nil) continue; + for (RTCVideoTrack* track in [stream.videoTracks copy]) { if ([trackID isEqualToString:track.trackId]) { [stream addVideoTrack:videoTrack]; }