if (mComplete) return NS_ERROR_FAILURE;  rv = mRequests->RemoveElement(req) ? NS_OK : NS_ERROR_FAILURE; if (NS_FAILED(rv)) return rv;  PRUint32 cnt; rv = mRequests->Count(&cnt); if (NS_FAILED(rv)) return rv; if (cnt == 0) {
return mLookup->Suspend(this);
nsDNSLookup::Suspend(nsDNSRequest* req){    nsresult rv;    nsAutoCMonitor mon(this);    if (mComplete)        return NS_ERROR_FAILURE;    rv = mRequests->RemoveElement(req) ? NS_OK : NS_ERROR_FAILURE;  // XXX this method incorrectly returns a bool    if (NS_FAILED(rv)) return rv;    PRUint32 cnt;    rv = mRequests->Count(&cnt);    if (NS_FAILED(rv)) return rv;    if (cnt == 0) {        // XXX need to do the platform-specific cancelation here    }    return rv;}