Merge pull request #141 from lucasr/enum-comparison

Faster enum comparisons in CSSNode
This commit is contained in:
Krzysztof Magiera
2015-10-07 13:19:56 +01:00

View File

@@ -115,7 +115,7 @@ public class CSSNode {
} }
public void setMeasureFunction(MeasureFunction measureFunction) { public void setMeasureFunction(MeasureFunction measureFunction) {
if (!valuesEqual(mMeasureFunction, measureFunction)) { if (mMeasureFunction != measureFunction) {
mMeasureFunction = measureFunction; mMeasureFunction = measureFunction;
dirty(); dirty();
} }
@@ -221,57 +221,50 @@ public class CSSNode {
return FloatUtil.floatsEqual(f1, f2); return FloatUtil.floatsEqual(f1, f2);
} }
protected <T> boolean valuesEqual(@Nullable T o1, @Nullable T o2) {
if (o1 == null) {
return o2 == null;
}
return o1.equals(o2);
}
public void setDirection(CSSDirection direction) { public void setDirection(CSSDirection direction) {
if (!valuesEqual(style.direction, direction)) { if (style.direction != direction) {
style.direction = direction; style.direction = direction;
dirty(); dirty();
} }
} }
public void setFlexDirection(CSSFlexDirection flexDirection) { public void setFlexDirection(CSSFlexDirection flexDirection) {
if (!valuesEqual(style.flexDirection, flexDirection)) { if (style.flexDirection != flexDirection) {
style.flexDirection = flexDirection; style.flexDirection = flexDirection;
dirty(); dirty();
} }
} }
public void setJustifyContent(CSSJustify justifyContent) { public void setJustifyContent(CSSJustify justifyContent) {
if (!valuesEqual(style.justifyContent, justifyContent)) { if (style.justifyContent != justifyContent) {
style.justifyContent = justifyContent; style.justifyContent = justifyContent;
dirty(); dirty();
} }
} }
public void setAlignItems(CSSAlign alignItems) { public void setAlignItems(CSSAlign alignItems) {
if (!valuesEqual(style.alignItems, alignItems)) { if (style.alignItems != alignItems) {
style.alignItems = alignItems; style.alignItems = alignItems;
dirty(); dirty();
} }
} }
public void setAlignSelf(CSSAlign alignSelf) { public void setAlignSelf(CSSAlign alignSelf) {
if (!valuesEqual(style.alignSelf, alignSelf)) { if (style.alignSelf != alignSelf) {
style.alignSelf = alignSelf; style.alignSelf = alignSelf;
dirty(); dirty();
} }
} }
public void setPositionType(CSSPositionType positionType) { public void setPositionType(CSSPositionType positionType) {
if (!valuesEqual(style.positionType, positionType)) { if (style.positionType != positionType) {
style.positionType = positionType; style.positionType = positionType;
dirty(); dirty();
} }
} }
public void setWrap(CSSWrap flexWrap) { public void setWrap(CSSWrap flexWrap) {
if (!valuesEqual(style.flexWrap, flexWrap)) { if (style.flexWrap != flexWrap) {
style.flexWrap = flexWrap; style.flexWrap = flexWrap;
dirty(); dirty();
} }