void RenderGeometryMap::popMappingsToAncestor(const RenderLayerModelObject* ancestorRenderer) { ASSERT(m_mapping.size()); while (m_mapping.size() && m_mapping.last().m_renderer != ancestorRenderer) { stepRemoved(m_mapping.last()); m_mapping.removeLast(); } }
void LayoutGeometryMap::popMappingsToAncestor(const LayoutBoxModelObject* ancestorLayoutObject) { ASSERT(m_mapping.size()); while (m_mapping.size() && m_mapping.last().m_layoutObject != ancestorLayoutObject) { stepRemoved(m_mapping.last()); m_mapping.removeLast(); } }
void LayoutGeometryMap::popMappingsToAncestor(const LayoutBoxModelObject* ancestorLayoutObject) { ASSERT(m_mapping.size()); bool mightBeSaturated = false; while (m_mapping.size() && m_mapping.last().m_layoutObject != ancestorLayoutObject) { mightBeSaturated = mightBeSaturated || m_accumulatedOffset.width().mightBeSaturated(); mightBeSaturated = mightBeSaturated || m_accumulatedOffset.height().mightBeSaturated(); stepRemoved(m_mapping.last()); m_mapping.removeLast(); } if (UNLIKELY(mightBeSaturated)) { m_accumulatedOffset = LayoutSize(); for (const auto& step : m_mapping) m_accumulatedOffset += step.m_offset; } }