Resolve some differences between CSSNode and CSSNodeJNI
Summary: This diff resolves some differences in behaviour between jni and java css nodes. This ensures certain test cases pass with both implementations. Reviewed By: lucasr Differential Revision: D3960755 fbshipit-source-id: 3e13a9435208851a96a619c07625ef2a5402f5ec
This commit is contained in:
committed by
Facebook Github Bot
parent
01115b8bbd
commit
56279110c0
@@ -649,5 +649,6 @@ public class CSSNode implements CSSNodeAPI<CSSNode> {
|
||||
layout.resetResult();
|
||||
lineIndex = 0;
|
||||
mLayoutState = LayoutState.DIRTY;
|
||||
mMeasureFunction = null;
|
||||
}
|
||||
}
|
||||
|
@@ -56,6 +56,9 @@ public class CSSNodeJNI implements CSSNodeAPI<CSSNodeJNI> {
|
||||
@Override
|
||||
public void reset() {
|
||||
assertNativeInstance();
|
||||
if (mParent != null || (mChildren != null && mChildren.size() > 0)) {
|
||||
throw new IllegalStateException("You should not reset an attached CSSNode");
|
||||
}
|
||||
|
||||
jni_CSSNodeFree(mNativePointer);
|
||||
mNativePointer = 0;
|
||||
@@ -78,6 +81,9 @@ public class CSSNodeJNI implements CSSNodeAPI<CSSNodeJNI> {
|
||||
@Override
|
||||
public void addChildAt(CSSNodeJNI child, int i) {
|
||||
assertNativeInstance();
|
||||
if (child.mParent != null) {
|
||||
throw new IllegalStateException("Child already has a parent, it must be removed first.");
|
||||
}
|
||||
|
||||
mChildren.add(i, child);
|
||||
child.mParent = this;
|
||||
|
Reference in New Issue
Block a user