[poincare] Prevent forbidden ChildAtIndex call in fraction_layout

Change-Id: I00d282a6dd3618f669aaeb0202d6495ae8035f12
This commit is contained in:
Hugo Saint-Vignes
2020-08-10 11:55:26 +02:00
committed by Émilie Feral
parent edcc1f6e80
commit 5b82b94c20

View File

@@ -175,8 +175,10 @@ bool FractionLayoutNode::isCollapsable(int * numberOfOpenParenthesis, bool going
int indexOfAbsorbingSibling = indexInParent + (goingLeft ? 1 : -1);
assert(indexOfAbsorbingSibling >= 0 && indexOfAbsorbingSibling < p.numberOfChildren());
Layout absorbingSibling = p.childAtIndex(indexOfAbsorbingSibling);
Layout absorbingChild = absorbingSibling.childAtIndex((goingLeft) ? absorbingSibling.leftCollapsingAbsorbingChildIndex() : absorbingSibling.rightCollapsingAbsorbingChildIndex());
return absorbingChild.type() == LayoutNode::Type::HorizontalLayout && absorbingChild.isEmpty();
if (absorbingSibling.numberOfChildren() > 0) {
absorbingSibling = absorbingSibling.childAtIndex((goingLeft) ? absorbingSibling.leftCollapsingAbsorbingChildIndex() : absorbingSibling.rightCollapsingAbsorbingChildIndex());
}
return absorbingSibling.type() == LayoutNode::Type::HorizontalLayout && absorbingSibling.isEmpty();
}
void FractionLayoutNode::didCollapseSiblings(LayoutCursor * cursor) {