PRInt32 cmp=aComparitor(anItem,aRootNode->mValue);
PRInt32 cmp=aComparator(anItem,aRootNode->mValue);
avlRemove(nsAVLNode*& aRootNode, void* anItem, PRBool& delOk,          nsAVLNodeComparitor& aComparitor){  eAVLStatus result=eAVL_ok;  if(!aRootNode)    delOk=PR_FALSE;  else {    PRInt32 cmp=aComparitor(anItem,aRootNode->mValue);    if(cmp<0){      avlRemove(aRootNode->mLeft,anItem,delOk,aComparitor);      if(delOk)        avlBalanceRight(aRootNode,delOk);    }    else if(cmp>0){      avlRemove(aRootNode->mRight,anItem,delOk,aComparitor);      if(delOk)        avlBalanceLeft(aRootNode,delOk);    }    else{ //they match...      nsAVLNode* temp=aRootNode;      if(!aRootNode->mRight) {        aRootNode=aRootNode->mLeft;        delOk=PR_TRUE;        delete temp;      }      else if(!aRootNode->mLeft) {        aRootNode=aRootNode->mRight;        delOk=PR_TRUE;        delete temp;      }      else {        avlRemoveChildren(aRootNode,aRootNode->mLeft,delOk);        if(delOk)          avlBalanceRight(aRootNode,delOk);      }    }  }  return result;}