if (mUserListener) {     nsCOMPtr<nsIRequest> req = this;
NS_ASSERTION(!PR_CLIST_IS_EMPTY(this), "request is not queue on lookup"); if (!PR_CLIST_IS_EMPTY(this)) { nsDNSService::Lock(); PR_REMOVE_AND_INIT_LINK(this); nsDNSService::Unlock(); }
nsDNSRequest::Cancel(nsresult status){    NS_ASSERTION(NS_FAILED(status), "shouldn't cancel with a success code");    mStatus = status;    if (mUserListener) {        // Hold onto a reference to ourself because if we decide to remove        // this request from the mRequests list, it could be the last         // reference, causing ourself to be deleted. We need to live until        // this method completes:        nsCOMPtr<nsIRequest> req = this;        (void)mLookup->Suspend(this);        return FireStop(status);    }    return NS_OK;}