InlineBox* RenderSVGText::createInlineBox(bool makePlaceHolderBox, bool isRootLineBox, bool isOnlyRun) { ASSERT(!isInlineFlow()); InlineFlowBox* flowBox = new (renderArena()) SVGRootInlineBox(this); if (!m_firstLineBox) m_firstLineBox = m_lastLineBox = flowBox; else { m_lastLineBox->setNextLineBox(flowBox); flowBox->setPreviousLineBox(m_lastLineBox); m_lastLineBox = flowBox; } return flowBox; }
void RenderLineBoxList::appendLineBox(std::unique_ptr<InlineFlowBox> box) { checkConsistency(); InlineFlowBox* boxPtr = box.release(); if (!m_firstLineBox) { m_firstLineBox = boxPtr; m_lastLineBox = boxPtr; } else { m_lastLineBox->setNextLineBox(boxPtr); boxPtr->setPreviousLineBox(m_lastLineBox); m_lastLineBox = boxPtr; } checkConsistency(); }
InlineBox* RenderFlow::createInlineBox(bool makePlaceHolderBox, bool isRootLineBox, bool isOnlyRun) { if (!isRootLineBox && (isReplaced() || makePlaceHolderBox)) // Inline tables and inline blocks return RenderContainer::createInlineBox(false, isRootLineBox); // (or positioned element placeholders). InlineFlowBox* flowBox = 0; if (isInlineFlow()) flowBox = new (renderArena()) InlineFlowBox(this); else flowBox = new (renderArena()) RootInlineBox(this); if (!m_firstLineBox) m_firstLineBox = m_lastLineBox = flowBox; else { m_lastLineBox->setNextLineBox(flowBox); flowBox->setPreviousLineBox(m_lastLineBox); m_lastLineBox = flowBox; } return flowBox; }