From 9490ca66dd83a75b51acd29f9ea072d3d4370716 Mon Sep 17 00:00:00 2001 From: Valentin Shergin Date: Wed, 11 Sep 2019 18:27:01 -0700 Subject: [PATCH] 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 --- React/Fabric/Mounting/UIView+ComponentViewProtocol.mm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/React/Fabric/Mounting/UIView+ComponentViewProtocol.mm b/React/Fabric/Mounting/UIView+ComponentViewProtocol.mm index 225e7bf4a2c..4bf4a5f5d19 100644 --- a/React/Fabric/Mounting/UIView+ComponentViewProtocol.mm +++ b/React/Fabric/Mounting/UIView+ComponentViewProtocol.mm @@ -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