File tree Expand file tree Collapse file tree
packages/core/ios/Sources Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2424@property (nonatomic , strong ) DdSdkImplementation *ddSdkImplementation;
2525
2626+ (void )initFromNative ;
27+ + (RCTBridge * _Nullable)latestBridgeReference ;
2728
2829@end
Original file line number Diff line number Diff line change 1414
1515@implementation DdSdk
1616
17- @synthesize bridge = _bridge;
17+ static __weak RCTBridge *s_latestBridge = nil ;
18+
19+ + (RCTBridge *)latestBridgeReference {
20+ return s_latestBridge;
21+ }
22+
1823RCT_EXPORT_MODULE ()
1924
2025RCT_REMAP_METHOD(initialize, withConfiguration:(NSDictionary *)configuration
@@ -105,7 +110,8 @@ @implementation DdSdk
105110- (DdSdkImplementation*)ddSdkImplementation
106111{
107112 if (_ddSdkImplementation == nil ) {
108- _ddSdkImplementation = [[DdSdkImplementation alloc ] initWithBridge: _bridge];
113+ s_latestBridge = self.bridge ;
114+ _ddSdkImplementation = [[DdSdkImplementation alloc ] initWithBridge: self .bridge];
109115 }
110116 return _ddSdkImplementation;
111117}
Original file line number Diff line number Diff line change @@ -151,7 +151,18 @@ public class DdSdkNativeInitialization: NSObject {
151151 }
152152 }
153153 let onSessionStart : RUM . SessionListener = { sessionId, isDiscarded in
154- let body : [ String : Any ? ] = [ " sessionId " : sessionId, " isDiscarded " : isDiscarded]
154+ guard
155+ let emitter = eventEmitter,
156+ let bridge = emitter. bridge,
157+ let latestBridge = DdSdk . latestBridgeReference ( ) ,
158+ bridge === latestBridge
159+ else {
160+ return
161+ }
162+
163+ let body : [ String : Any ? ] = [
164+ " sessionId " : sessionId, " isDiscarded " : isDiscarded,
165+ ]
155166 eventEmitter? . sendEvent ( withName: " RumSessionStarted " , body: body)
156167 }
157168
You can’t perform that action at this time.
0 commit comments