else { nsCOMPtr<nsIContent> cN = *ioNextNode; nsCOMPtr<nsIContent> cLastChild; PRInt32 numChildren;
nsresult nsGeneratedContentIterator::PrevNode(nsCOMPtr<nsIContent> *ioNextNode){  if (!ioNextNode)    return NS_ERROR_NULL_POINTER;    if (mPre)  // if we are a Pre-order iterator, use pre-order  {    return NS_ERROR_NOT_IMPLEMENTED;  }  else  // post-order  {    nsCOMPtr<nsIContent> cN = *ioNextNode;    nsCOMPtr<nsIContent> cLastChild;    PRInt32 numChildren;      cN->ChildCount(numChildren);      // if it has children then prev node is last child    if (numChildren)    {      if (NS_FAILED(cN->ChildAt(--numChildren,*getter_AddRefs(cLastChild))))        return NS_ERROR_FAILURE;      if (!cLastChild)        return NS_ERROR_FAILURE;      *ioNextNode = cLastChild;      return NS_OK;    }      // else prev sibling is previous    return GetPrevSibling(cN, ioNextNode);  }  return NS_OK;}