status = (*_retval = nsXPIDLCString::Copy(*entry)) ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
status = (*_retval = nsCRT::strdup(*entry)) ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
nsCategoryManager::GetCategoryEntryRaw( const char *aCategoryName,                                        const char *aEntryName,                                        char **_retval )  {    NS_ASSERTION(aCategoryName, "aCategoryName is NULL!");    NS_ASSERTION(aEntryName,    "aEntryName is NULL!");    NS_ASSERTION(_retval,       "_retval is NULL!");    nsresult status = NS_ERROR_NOT_AVAILABLE;    CategoryNode* category = find_category(aCategoryName);    if (category)       {        nsCStringKey entryKey(aEntryName);        LeafNode* entry = NS_STATIC_CAST(LeafNode*, category->Get(&entryKey));        if (entry)          status = (*_retval = nsXPIDLCString::Copy(*entry)) ? NS_OK : NS_ERROR_OUT_OF_MEMORY;      }    return status;  }