Make isTextNode a prop instead of a function

Reviewed By: javache

Differential Revision: D3586184

fbshipit-source-id: 8b269c11c5d47efb6b788be68336845399292168
This commit is contained in:
Emil Sjolander 2016-07-20 08:46:04 -07:00 коммит произвёл Facebook Github Bot 6
Родитель 1af9270e45
Коммит c7ff46bf55
3 изменённых файлов: 5 добавлений и 6 удалений

Просмотреть файл

@ -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;

Просмотреть файл

@ -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;

Просмотреть файл

@ -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);