private static void processPageBreakAvoidRun(final LayoutContext c, final Box block,
private static void processPageBreakAvoidRun(final LayoutContext c, final BlockBox block,
    private static void processPageBreakAvoidRun(final LayoutContext c, final Box block,             List contentList, Boxing.StyleSetListener styleSetListener, int offset,             RelayoutDataList relayoutDataList, RelayoutData relayoutData,             BlockBox childBox) {        if (offset > 0) {            boolean mightNeedRelayout = false;            int runEnd = -1;            if (offset == contentList.size() - 1 && relayoutData.isEndsRun()) {                mightNeedRelayout = true;                runEnd = offset;            } else if (offset > 0){                RelayoutData previousRelayoutData = relayoutDataList.get(offset-1);                if (previousRelayoutData.isEndsRun()) {                    mightNeedRelayout = true;                    runEnd = offset - 1;                }            }            if (mightNeedRelayout) {                int heightBeforeRelayout = block.height;                int runStart = relayoutDataList.getRunStart(runEnd);                if (c.getRootLayer().crossesPageBreak(c,                         block.getChild(runStart).getAbsY(),                        block.getChild(runEnd).getAbsY() + childBox.getHeight())) {                    boolean fits = relayoutOnNewPage(c, contentList, block,                             styleSetListener, relayoutDataList, runStart, offset);                    if (fits) {                        block.detachChildren(runStart, offset);                    } else {                        block.detachChildren(offset+1, block.getChildCount()-1);                        block.height = heightBeforeRelayout;                    }                }            }        }    }