Skip to content

Commit bdd45e4

Browse files
committed
Prevent RCTScreenSize from caching a zero screen size
1 parent b36b0b0 commit bdd45e4

2 files changed

Lines changed: 5 additions & 13 deletions

File tree

packages/react-native/React/Base/RCTUtils.mm

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -384,13 +384,13 @@ UIDeviceOrientation RCTDeviceOrientation(void)
384384
CGSize RCTScreenSize(void)
385385
{
386386
static CGSize portraitSize;
387-
static dispatch_once_t onceToken;
388-
dispatch_once(&onceToken, ^{
387+
388+
if (CGSizeEqualToSize(portraitSize, CGSizeZero)) {
389389
RCTUnsafeExecuteOnMainQueueSync(^{
390390
CGSize screenSize = [UIScreen mainScreen].bounds.size;
391391
portraitSize = CGSizeMake(MIN(screenSize.width, screenSize.height), MAX(screenSize.width, screenSize.height));
392392
});
393-
});
393+
}
394394

395395
#if !TARGET_OS_TV
396396
if (UIDeviceOrientationIsLandscape(RCTDeviceOrientation())) {

packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewUtils.mm

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,8 @@
1313

1414
Size ModalHostViewScreenSize(void)
1515
{
16-
__block CGSize viewportSize;
17-
18-
RCTUnsafeExecuteOnMainQueueSync(^{
19-
viewportSize = RCTViewportSize();
20-
});
21-
22-
return {
23-
.width = viewportSize.width,
24-
.height = viewportSize.height,
25-
};
16+
CGSize screenSize = RCTScreenSize();
17+
return {.width = screenSize.width, .height = screenSize.height};
2618
}
2719

2820
} // namespace facebook::react

0 commit comments

Comments
 (0)