From b88cc7bf52940e9902decb67aa390f208872a1c8 Mon Sep 17 00:00:00 2001 From: zhongwuzw Date: Fri, 29 Mar 2019 07:50:54 -0700 Subject: [PATCH] Fix invalid CGContext when invalidate layer (#24195) Summary: If size is zero, the `CGContext` would invalid, so we need to filter zero things. cc. shergin [iOS] [Fixed] - Fix invalid CGContext when invalidate layer Pull Request resolved: https://github.com/facebook/react-native/pull/24195 Differential Revision: D14683396 Pulled By: shergin fbshipit-source-id: b5b45fb86ca3158284281460cf1d95d1b22eab0d --- .../Mounting/ComponentViews/View/RCTViewComponentView.mm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm b/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm index fa0a7d2b066..581e4609800 100644 --- a/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +++ b/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm @@ -356,11 +356,15 @@ static RCTBorderStyle RCTBorderStyleFromBorderStyle(BorderStyle borderStyle) - (void)invalidateLayer { + CALayer *layer = self.layer; + + if (CGSizeEqualToSize(layer.bounds.size, CGSizeZero)) { + return; + } + const auto borderMetrics = _props->resolveBorderMetrics(_layoutMetrics.layoutDirection == LayoutDirection::RightToLeft); - CALayer *layer = self.layer; - // Stage 1. Shadow Path BOOL layerHasShadow = layer.shadowOpacity > 0 && CGColorGetAlpha(layer.shadowColor) > 0; if (layerHasShadow) {