DeprecatedPaintLayerStackingNode* DeprecatedPaintLayerStackingNodeReverseIterator::next() { if (m_remainingChildren & NegativeZOrderChildren) { Vector<DeprecatedPaintLayerStackingNode*>* negZOrderList = m_root.negZOrderList(); if (negZOrderList && m_index >= 0) return negZOrderList->at(m_index--); m_remainingChildren &= ~NegativeZOrderChildren; setIndexToLastItem(); } if (m_remainingChildren & NormalFlowChildren) { for (; m_currentNormalFlowChild; m_currentNormalFlowChild = m_currentNormalFlowChild->previousSibling()) { if (!m_currentNormalFlowChild->stackingNode()->isTreatedAsStackingContextForPainting() && !m_currentNormalFlowChild->isReflection()) { DeprecatedPaintLayer* normalFlowChild = m_currentNormalFlowChild; m_currentNormalFlowChild = m_currentNormalFlowChild->previousSibling(); return normalFlowChild->stackingNode(); } } m_remainingChildren &= ~NormalFlowChildren; setIndexToLastItem(); } if (m_remainingChildren & PositiveZOrderChildren) { Vector<DeprecatedPaintLayerStackingNode*>* posZOrderList = m_root.posZOrderList(); if (posZOrderList && m_index >= 0) return posZOrderList->at(m_index--); m_remainingChildren &= ~PositiveZOrderChildren; setIndexToLastItem(); } return 0; }
RenderLayerStackingNode* RenderLayerStackingNodeReverseIterator::next() { if (m_remainingChildren & NegativeZOrderChildren) { Vector<RenderLayerStackingNode*>* negZOrderList = m_root.negZOrderList(); if (negZOrderList && m_index >= 0) return negZOrderList->at(m_index--); m_remainingChildren &= ~NegativeZOrderChildren; setIndexToLastItem(); } if (m_remainingChildren & NormalFlowChildren) { Vector<RenderLayerStackingNode*>* normalFlowList = m_root.normalFlowList(); if (normalFlowList && m_index >= 0) return normalFlowList->at(m_index--); m_remainingChildren &= ~NormalFlowChildren; setIndexToLastItem(); } if (m_remainingChildren & PositiveZOrderChildren) { Vector<RenderLayerStackingNode*>* posZOrderList = m_root.posZOrderList(); if (posZOrderList && m_index >= 0) return posZOrderList->at(m_index--); m_remainingChildren &= ~PositiveZOrderChildren; setIndexToLastItem(); } return 0; }