if (pendingFloats.size() > 0) { FloatedBlockBox pending0 = (FloatedBlockBox)pendingFloats.get(0); pending0.y += current.height; c.getBlockFormattingContext().floatPending(c, pendingFloats); }
    private static void saveLine(final LineBox current, LineBox previous,                                 final LayoutContext c, Box block, int minHeight,                                 final int maxAvailableWidth, List elementStack,                                  List pendingFloats, boolean hasFirstLinePCs,                                 List pendingInlineLayers, MarkerData markerData) {        current.prunePendingInlineBoxes();        int totalLineWidth = positionHorizontally(c, current, 0);        current.contentWidth = totalLineWidth;        positionVertically(c, block, current, markerData);        if (!c.shrinkWrap()) {            current.setFloatDistances(new FloatDistances() {                public int getLeftFloatDistance() {                    return c.getBlockFormattingContext().getLeftFloatDistance(c, current, maxAvailableWidth);                }                public int getRightFloatDistance() {                    return c.getBlockFormattingContext().getRightFloatDistance(c, current, maxAvailableWidth);                }            });            current.align();            current.setFloatDistances(null);        } else {            // FIXME Not right, but can't calculated float distance yet            // because we don't know how wide the line is.  Should save            // BFC and BFC offset and use that to calculate float distance            // correctly when we're ready to align the line.            FloatDistances distances = new FloatDistances();            distances.setLeftFloatDistance(0);            distances.setRightFloatDistance(0);            current.setFloatDistances(distances);        }                if (c.shrinkWrap()) {        	block.adjustWidthForChild(current.contentWidth);        }        current.y = previous == null ? 0 : previous.y + previous.height;        if (current.height != 0 && current.height < minHeight) {//would like to discard it otherwise, but that could lose inline elements            current.height = minHeight;        }                if (c.isPrint() && current.crossesPageBreak(c)) {            current.moveToNextPage(c);            current.calcCanvasLocation();        }                current.calcChildLocations();                block.addChild(c, current);        if (pendingFloats.size() > 0) {            FloatedBlockBox pending0 = (FloatedBlockBox)pendingFloats.get(0);            pending0.y += current.height;            c.getBlockFormattingContext().floatPending(c, pendingFloats);        }                // new float code        if (!block.getStyle().isClearLeft()) {            current.x += c.getBlockFormattingContext().getLeftFloatDistance(c, current, maxAvailableWidth);        }                if (pendingInlineLayers.size() > 0) {            finishPendingInlineLayers(c, pendingInlineLayers);            pendingInlineLayers.clear();        }                if (hasFirstLinePCs && current.isFirstLine()) {            for (int i = 0; i < elementStack.size(); i++) {                c.popStyle();            }            c.getFirstLinesTracker().popStyles(c);            c.getFirstLinesTracker().clearStyles();            for (Iterator i = elementStack.iterator(); i.hasNext(); ) {                InlineBoxInfo iBInfo = (InlineBoxInfo)i.next();                c.pushStyle(iBInfo.getCascadedStyle());                iBInfo.setCalculatedStyle(c.getCurrentStyle());            }        }    }