From 102b962588671f955cd6f23c03062f6bf33ffb3d Mon Sep 17 00:00:00 2001 From: zhongwuzw Date: Tue, 4 Jun 2019 09:54:28 +0800 Subject: [PATCH 1/2] [Fabric] Add check before explicit cast for Transform --- ReactCommon/fabric/components/view/conversions.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ReactCommon/fabric/components/view/conversions.h b/ReactCommon/fabric/components/view/conversions.h index 71ffda3fdbe0da..0df0db6e9fb282 100644 --- a/ReactCommon/fabric/components/view/conversions.h +++ b/ReactCommon/fabric/components/view/conversions.h @@ -402,6 +402,9 @@ inline void fromRawValue(const RawValue &value, Transform &result) { auto configurations = (std::vector)value; for (const auto &configuration : configurations) { + if(!configuration.hasType>()){ + return; + } auto configurationPair = (better::map)configuration; auto pair = configurationPair.begin(); auto operation = pair->first; From af186370037d497fe8d74127504e15a5d2c6f84a Mon Sep 17 00:00:00 2001 From: zhongwuzw Date: Tue, 4 Jun 2019 10:09:43 +0800 Subject: [PATCH 2/2] Check only once --- ReactCommon/fabric/components/view/conversions.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ReactCommon/fabric/components/view/conversions.h b/ReactCommon/fabric/components/view/conversions.h index 0df0db6e9fb282..f8b5af8975ca3c 100644 --- a/ReactCommon/fabric/components/view/conversions.h +++ b/ReactCommon/fabric/components/view/conversions.h @@ -401,10 +401,12 @@ inline void fromRawValue(const RawValue &value, Transform &result) { auto transformMatrix = Transform{}; auto configurations = (std::vector)value; + if (configurations.begin() != configurations.end() && + !(*configurations.begin()).hasType>()) { + result = transformMatrix; + return; + } for (const auto &configuration : configurations) { - if(!configuration.hasType>()){ - return; - } auto configurationPair = (better::map)configuration; auto pair = configurationPair.begin(); auto operation = pair->first;