diff --git a/React/CSSLayout/CSSLayout-internal.h b/React/CSSLayout/CSSLayout-internal.h index 68e6d3d30a0..2a3ceecf079 100644 --- a/React/CSSLayout/CSSLayout-internal.h +++ b/React/CSSLayout/CSSLayout-internal.h @@ -88,13 +88,13 @@ typedef struct CSSNode { int childCount; int lineIndex; bool shouldUpdate; + bool isTextNode; struct CSSNode* nextChild; CSSSize (*measure)(void *context, float width, CSSMeasureMode widthMode, float height, CSSMeasureMode heightMode); struct CSSNode* (*getChild)(void *context, int i); bool (*isDirty)(void *context); - bool (*isTextNode)(void *context); void (*print)(void *context); void *context; } CSSNode; diff --git a/React/CSSLayout/CSSLayout.c b/React/CSSLayout/CSSLayout.c index 6eab4f3e574..8e7524a5662 100644 --- a/React/CSSLayout/CSSLayout.c +++ b/React/CSSLayout/CSSLayout.c @@ -112,8 +112,8 @@ CSS_NODE_PROPERTY_IMPL(int, ChildCount, childCount, childCount); CSS_NODE_PROPERTY_IMPL(CSSMeasureFunc, MeasureFunc, measureFunc, measure); CSS_NODE_PROPERTY_IMPL(CSSChildFunc, ChildFunc, childFunc, getChild); CSS_NODE_PROPERTY_IMPL(CSSIsDirtyFunc, IsDirtyFunc, isDirtyFunc, isDirty); -CSS_NODE_PROPERTY_IMPL(CSSIsTextFunc, IsTextFunc, isTextFunc, isTextNode); CSS_NODE_PROPERTY_IMPL(CSSPrintFunc, PrintFunc, printFunc, print); +CSS_NODE_PROPERTY_IMPL(bool, IsTextnode, isTextNode, isTextNode); CSS_NODE_PROPERTY_IMPL(bool, ShouldUpdate, shouldUpdate, shouldUpdate); CSS_NODE_STYLE_PROPERTY_IMPL(CSSDirection, Direction, direction, direction); @@ -1740,13 +1740,13 @@ bool layoutNodeInternal(CSSNode* node, float availableWidth, float availableHeig float marginAxisColumn = getMarginAxis(node, CSSFlexDirectionColumn); // First, try to use the layout cache. - if (canUseCachedMeasurement(node->isTextNode && node->isTextNode(node->context), availableWidth, availableHeight, marginAxisRow, marginAxisColumn, + if (canUseCachedMeasurement(node->isTextNode, availableWidth, availableHeight, marginAxisRow, marginAxisColumn, widthMeasureMode, heightMeasureMode, layout->cached_layout)) { cachedResults = &layout->cached_layout; } else { // Try to use the measurement cache. for (int i = 0; i < layout->nextCachedMeasurementsIndex; i++) { - if (canUseCachedMeasurement(node->isTextNode && node->isTextNode(node->context), availableWidth, availableHeight, marginAxisRow, marginAxisColumn, + if (canUseCachedMeasurement(node->isTextNode, availableWidth, availableHeight, marginAxisRow, marginAxisColumn, widthMeasureMode, heightMeasureMode, layout->cachedMeasurements[i])) { cachedResults = &layout->cachedMeasurements[i]; break; diff --git a/React/CSSLayout/CSSLayout.h b/React/CSSLayout/CSSLayout.h index 99d792a9405..f05a816cd7c 100644 --- a/React/CSSLayout/CSSLayout.h +++ b/React/CSSLayout/CSSLayout.h @@ -112,7 +112,6 @@ typedef struct CSSNode * CSSNodeRef; typedef CSSSize (*CSSMeasureFunc)(void *context, float width, CSSMeasureMode widthMode, float height, CSSMeasureMode heightMode); typedef CSSNodeRef (*CSSChildFunc)(void *context, int i); typedef bool (*CSSIsDirtyFunc)(void *context); -typedef bool (*CSSIsTextFunc)(void *context); typedef void (*CSSPrintFunc)(void *context); // CSSNode @@ -146,8 +145,8 @@ CSS_NODE_PROPERTY(int, ChildCount, childCount); CSS_NODE_PROPERTY(CSSMeasureFunc, MeasureFunc, measureFunc); CSS_NODE_PROPERTY(CSSChildFunc, ChildFunc, childFunc); CSS_NODE_PROPERTY(CSSIsDirtyFunc, IsDirtyFunc, isDirtyFunc); -CSS_NODE_PROPERTY(CSSIsTextFunc, IsTextFunc, isTextFunc); CSS_NODE_PROPERTY(CSSPrintFunc, PrintFunc, printFunc); +CSS_NODE_PROPERTY(bool, IsTextnode, isTextNode); CSS_NODE_PROPERTY(bool, ShouldUpdate, shouldUpdate); CSS_NODE_STYLE_PROPERTY(CSSDirection, Direction, direction);