nsISupports* prevValue = (nsISupports*)Put(&key, value); NS_IF_RELEASE(prevValue); NS_IF_ADDREF(value); return NS_OK;
const PRUnichar *key = aKey.GetUnicode(); PRUint32 len; PRUint32 hashValue = nsCRT::HashValue(key, &len); PLHashEntry **hep = PL_HashTableRawLookup(mTable, hashValue, key); PLHashEntry *he = *hep; if (he && aOldValue.GetUnicode()) {  } PL_HashTableRawAdd(mTable, hep, hashValue, aKey.ToNewUnicode(), aNewValue.ToNewUnicode());  return NS_OK;
nsProperties::SetProperty(const char* prop, nsISupports* value){    nsCStringKey key(prop);    if (!Exists(&key))        return NS_ERROR_FAILURE;    nsISupports* prevValue = (nsISupports*)Put(&key, value);    NS_IF_RELEASE(prevValue);    NS_IF_ADDREF(value);    return NS_OK;}