Fabric: Small simplification in UIView+ComponentViewProtocol

Summary: Now we use `std::isfinite` instead of a pair of `std::isnan` and `std::isinf` which improves readability.

Reviewed By: sammy-SC

Differential Revision: D17312174

fbshipit-source-id: 76175524de566745962e96e46effe0bce52a09ad
This commit is contained in:
Valentin Shergin
2019-09-11 18:29:22 -07:00
committed by Facebook Github Bot
parent fc0b03a0d1
commit 9490ca66dd
@@ -71,9 +71,8 @@ using namespace facebook::react;
if (layoutMetrics.frame != oldLayoutMetrics.frame) {
CGRect frame = RCTCGRectFromRect(layoutMetrics.frame);
if (std::isnan(frame.origin.x) || std::isnan(frame.origin.y) || std::isnan(frame.size.width) ||
std::isnan(frame.size.height) || std::isinf(frame.origin.x) || std::isinf(frame.origin.y) ||
std::isinf(frame.size.width) || std::isinf(frame.size.height)) {
if (!std::isfinite(frame.origin.x) || !std::isfinite(frame.origin.y) || !std::isfinite(frame.size.width) ||
!std::isfinite(frame.size.height)) {
// CALayer will crash if we pass NaN or Inf values.
// It's unclear how to detect this case on cross-platform manner holistically, so we have to do it on the mounting
// layer as well. NaN/Inf is a kinda valid result of some math operations. Even if we can (and should) detect (and