PL_HashTableRawRemove(mResources, hep, *hep);
RDFServiceImpl::UnregisterResource(nsIRDFResource* aResource){    NS_PRECONDITION(aResource != nsnull, "null ptr");    if (! aResource)        return NS_ERROR_NULL_POINTER;    nsresult rv;#ifdef REUSE_RESOURCE_URI_AS_KEY    const char* uri;    rv = aResource->GetValueConst(&uri);#else    nsXPIDLCString uri;    rv = aResource->GetValue(getter_Copies(uri));#endif    if (NS_FAILED(rv)) return rv;    NS_ASSERTION(uri != nsnull, "resource has no URI");    if (! uri)        return NS_ERROR_UNEXPECTED;    PLHashEntry** hep = PL_HashTableRawLookup(mResources, (*mResources->keyHash)(uri), uri);    if (!hep || !*hep)        return NS_OK;#ifndef REUSE_RESOURCE_URI_AS_KEY    PL_strfree((char*) (*hep)->key);#endif    // N.B. that we _don't_ release the resource: we only held a weak    // reference to it in the hashtable.    PR_LOG(gLog, PR_LOG_DEBUG,           ("rdfserv unregister-resource [%p] %s",            aResource, (const char*) uri));    PL_HashTableRawRemove(mResources, hep, *hep);    return NS_OK;}