GetNodeValue(node2, sortInfo, PR_TRUE, isCollationKey1, getter_AddRefs(cellNode2), isCollationKey2);
GetNodeValue(info2, sortInfo, PR_TRUE, isCollationKey1, getter_AddRefs(cellNode2), isCollationKey2);
XULSortServiceImpl::InplaceSort(nsIContent *node1, nsIContent *node2, sortPtr sortInfo, PRInt32 & sortOrder){  PRBool isCollationKey1 = PR_FALSE, isCollationKey2 = PR_FALSE;  nsresult rv;  sortOrder = 0;  nsCOMPtr<nsIRDFNode> cellNode1, cellNode2;  // rjc: in some cases, the first node is static while the second node changes  // per comparison; in these circumstances, we can cache the first node  if ((sortInfo->cacheFirstHint == PR_TRUE) && (sortInfo->cacheFirstNode))  {    cellNode1 = sortInfo->cacheFirstNode;    isCollationKey1 = sortInfo->cacheIsFirstNodeCollationKey;  }  else  {    GetNodeValue(node1, sortInfo, PR_TRUE, PR_FALSE, getter_AddRefs(cellNode1), isCollationKey1);    if (sortInfo->cacheFirstHint == PR_TRUE)    {      sortInfo->cacheFirstNode = cellNode1;      sortInfo->cacheIsFirstNodeCollationKey = isCollationKey1;    }  }  GetNodeValue(node2, sortInfo, PR_TRUE, isCollationKey1, getter_AddRefs(cellNode2), isCollationKey2);  PRBool  bothValid = PR_FALSE;  rv = CompareNodes(cellNode1, isCollationKey1, cellNode2, isCollationKey2, bothValid, sortOrder);  if (sortOrder == 0)  {    // nodes appear to be equivalent, check for secondary sort criteria    if (sortInfo->sortProperty2 != nsnull)    {      cellNode1 = nsnull;      cellNode2 = nsnull;      isCollationKey1 = PR_FALSE;      isCollationKey2 = PR_FALSE;            GetNodeValue(node1, sortInfo, PR_FALSE, PR_FALSE, getter_AddRefs(cellNode1), isCollationKey1);      GetNodeValue(node2, sortInfo, PR_FALSE, isCollationKey1, getter_AddRefs(cellNode2), isCollationKey2);      bothValid = PR_FALSE;      rv = CompareNodes(cellNode1, isCollationKey1, cellNode2, isCollationKey2, bothValid, sortOrder);    }  }  if ((bothValid == PR_TRUE) && (sortInfo->descendingSort == PR_TRUE))  {    // descending sort is being imposed, so reverse the sort order    sortOrder = -sortOrder;  }  return NS_OK;}