Make isTextNode a prop instead of a function
Reviewed By: javache Differential Revision: D3586184 fbshipit-source-id: 8b269c11c5d47efb6b788be68336845399292168
This commit is contained in:
Родитель
1af9270e45
Коммит
c7ff46bf55
|
@ -88,13 +88,13 @@ typedef struct CSSNode {
|
||||||
int childCount;
|
int childCount;
|
||||||
int lineIndex;
|
int lineIndex;
|
||||||
bool shouldUpdate;
|
bool shouldUpdate;
|
||||||
|
bool isTextNode;
|
||||||
|
|
||||||
struct CSSNode* nextChild;
|
struct CSSNode* nextChild;
|
||||||
|
|
||||||
CSSSize (*measure)(void *context, float width, CSSMeasureMode widthMode, float height, CSSMeasureMode heightMode);
|
CSSSize (*measure)(void *context, float width, CSSMeasureMode widthMode, float height, CSSMeasureMode heightMode);
|
||||||
struct CSSNode* (*getChild)(void *context, int i);
|
struct CSSNode* (*getChild)(void *context, int i);
|
||||||
bool (*isDirty)(void *context);
|
bool (*isDirty)(void *context);
|
||||||
bool (*isTextNode)(void *context);
|
|
||||||
void (*print)(void *context);
|
void (*print)(void *context);
|
||||||
void *context;
|
void *context;
|
||||||
} CSSNode;
|
} 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(CSSMeasureFunc, MeasureFunc, measureFunc, measure);
|
||||||
CSS_NODE_PROPERTY_IMPL(CSSChildFunc, ChildFunc, childFunc, getChild);
|
CSS_NODE_PROPERTY_IMPL(CSSChildFunc, ChildFunc, childFunc, getChild);
|
||||||
CSS_NODE_PROPERTY_IMPL(CSSIsDirtyFunc, IsDirtyFunc, isDirtyFunc, isDirty);
|
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(CSSPrintFunc, PrintFunc, printFunc, print);
|
||||||
|
CSS_NODE_PROPERTY_IMPL(bool, IsTextnode, isTextNode, isTextNode);
|
||||||
CSS_NODE_PROPERTY_IMPL(bool, ShouldUpdate, shouldUpdate, shouldUpdate);
|
CSS_NODE_PROPERTY_IMPL(bool, ShouldUpdate, shouldUpdate, shouldUpdate);
|
||||||
|
|
||||||
CSS_NODE_STYLE_PROPERTY_IMPL(CSSDirection, Direction, direction, direction);
|
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);
|
float marginAxisColumn = getMarginAxis(node, CSSFlexDirectionColumn);
|
||||||
|
|
||||||
// First, try to use the layout cache.
|
// 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)) {
|
widthMeasureMode, heightMeasureMode, layout->cached_layout)) {
|
||||||
cachedResults = &layout->cached_layout;
|
cachedResults = &layout->cached_layout;
|
||||||
} else {
|
} else {
|
||||||
// Try to use the measurement cache.
|
// Try to use the measurement cache.
|
||||||
for (int i = 0; i < layout->nextCachedMeasurementsIndex; i++) {
|
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])) {
|
widthMeasureMode, heightMeasureMode, layout->cachedMeasurements[i])) {
|
||||||
cachedResults = &layout->cachedMeasurements[i];
|
cachedResults = &layout->cachedMeasurements[i];
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -112,7 +112,6 @@ typedef struct CSSNode * CSSNodeRef;
|
||||||
typedef CSSSize (*CSSMeasureFunc)(void *context, float width, CSSMeasureMode widthMode, float height, CSSMeasureMode heightMode);
|
typedef CSSSize (*CSSMeasureFunc)(void *context, float width, CSSMeasureMode widthMode, float height, CSSMeasureMode heightMode);
|
||||||
typedef CSSNodeRef (*CSSChildFunc)(void *context, int i);
|
typedef CSSNodeRef (*CSSChildFunc)(void *context, int i);
|
||||||
typedef bool (*CSSIsDirtyFunc)(void *context);
|
typedef bool (*CSSIsDirtyFunc)(void *context);
|
||||||
typedef bool (*CSSIsTextFunc)(void *context);
|
|
||||||
typedef void (*CSSPrintFunc)(void *context);
|
typedef void (*CSSPrintFunc)(void *context);
|
||||||
|
|
||||||
// CSSNode
|
// CSSNode
|
||||||
|
@ -146,8 +145,8 @@ CSS_NODE_PROPERTY(int, ChildCount, childCount);
|
||||||
CSS_NODE_PROPERTY(CSSMeasureFunc, MeasureFunc, measureFunc);
|
CSS_NODE_PROPERTY(CSSMeasureFunc, MeasureFunc, measureFunc);
|
||||||
CSS_NODE_PROPERTY(CSSChildFunc, ChildFunc, childFunc);
|
CSS_NODE_PROPERTY(CSSChildFunc, ChildFunc, childFunc);
|
||||||
CSS_NODE_PROPERTY(CSSIsDirtyFunc, IsDirtyFunc, isDirtyFunc);
|
CSS_NODE_PROPERTY(CSSIsDirtyFunc, IsDirtyFunc, isDirtyFunc);
|
||||||
CSS_NODE_PROPERTY(CSSIsTextFunc, IsTextFunc, isTextFunc);
|
|
||||||
CSS_NODE_PROPERTY(CSSPrintFunc, PrintFunc, printFunc);
|
CSS_NODE_PROPERTY(CSSPrintFunc, PrintFunc, printFunc);
|
||||||
|
CSS_NODE_PROPERTY(bool, IsTextnode, isTextNode);
|
||||||
CSS_NODE_PROPERTY(bool, ShouldUpdate, shouldUpdate);
|
CSS_NODE_PROPERTY(bool, ShouldUpdate, shouldUpdate);
|
||||||
|
|
||||||
CSS_NODE_STYLE_PROPERTY(CSSDirection, Direction, direction);
|
CSS_NODE_STYLE_PROPERTY(CSSDirection, Direction, direction);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче