Skip to content

Commit ba8b6a7

Browse files
sherginfacebook-github-bot
authored andcommitted
Fabric: Checking an EventEmitter before calling in RCTModalHostViewComponentView
Summary: We need to check if `_eventEmitter` is not nullptr before each call on it. Reviewed By: sammy-SC Differential Revision: D17531070 fbshipit-source-id: e9b5608845c10c7c2ef38f43c8deb67dad10fb6f
1 parent a35a3ec commit ba8b6a7

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm

+13-4
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,13 @@ - (void)ensurePresentedOnlyIfNeeded
129129
presentViewController:_viewController
130130
animated:_shouldAnimatePresentation
131131
completion:^{
132-
ModalHostViewOnShowStruct onShow;
133-
std::dynamic_pointer_cast<const ModalHostViewEventEmitter>(self->_eventEmitter)->onShow(onShow);
132+
if (!self->_eventEmitter) {
133+
return;
134+
}
135+
136+
assert(std::dynamic_pointer_cast<ModalHostViewEventEmitter const>(self->_eventEmitter));
137+
auto eventEmitter = std::static_pointer_cast<ModalHostViewEventEmitter const>(self->_eventEmitter);
138+
eventEmitter->onShow(ModalHostViewOnShowStruct{});
134139
}];
135140
}
136141

@@ -156,8 +161,12 @@ - (void)didMoveToSuperview
156161

157162
- (void)boundsDidChange:(CGRect)newBounds
158163
{
159-
std::dynamic_pointer_cast<const ModalHostViewEventEmitter>(_eventEmitter)
160-
->onOrientationChange(onOrientationChangeStruct(newBounds));
164+
if (_eventEmitter) {
165+
assert(std::dynamic_pointer_cast<ModalHostViewEventEmitter const>(_eventEmitter));
166+
167+
auto eventEmitter = std::static_pointer_cast<ModalHostViewEventEmitter const>(_eventEmitter);
168+
eventEmitter->onOrientationChange(onOrientationChangeStruct(newBounds));
169+
}
161170

162171
if (_state != nullptr) {
163172
auto newState = ModalHostViewState{RCTSizeFromCGSize(newBounds.size)};

0 commit comments

Comments
 (0)