void nsFilteredContentIterator::Prev() { if (mIsOutOfRange || !mCurrentIterator) { NS_ASSERTION(mCurrentIterator, "Missing iterator!"); return; } // If we are switching directions then // we need to switch how we process the nodes if (mDirection != eBackward) { nsresult rv = SwitchDirections(false); if (NS_FAILED(rv)) { return; } } mCurrentIterator->Prev(); if (mCurrentIterator->IsDone()) { return; } // If we can't get the current node then // don't check to see if we can skip it nsINode *currentNode = mCurrentIterator->GetCurrentNode(); nsCOMPtr<nsIDOMNode> node(do_QueryInterface(currentNode)); CheckAdvNode(node, mDidSkip, eBackward); }
void FilteredContentIterator::Next() { if (mIsOutOfRange || !mCurrentIterator) { NS_ASSERTION(mCurrentIterator, "Missing iterator!"); return; } // If we are switching directions then // we need to switch how we process the nodes if (mDirection != eForward) { nsresult rv = SwitchDirections(true); if (NS_FAILED(rv)) { return; } } mCurrentIterator->Next(); if (mCurrentIterator->IsDone()) { return; } // If we can't get the current node then // don't check to see if we can skip it nsINode* currentNode = mCurrentIterator->GetCurrentNode(); CheckAdvNode(currentNode, mDidSkip, eForward); }