{ NS_ENSURE_ARG_POINTER(aCategoryName); NS_ENSURE_ARG_POINTER(aEntryName); NS_ENSURE_ARG_POINTER(aValue);
{ NS_ASSERTION(aCategoryName, "aCategoryName is NULL!"); NS_ASSERTION(aEntryName,    "aEntryName is NULL!"); NS_ASSERTION(aValue,        "aValue is NULL!");
nsCategoryManager::AddCategoryEntry( const char *aCategoryName,                                     const char *aEntryName,                                     const char *aValue,                                     PRBool aPersist,                                     PRBool aReplace,                                     char **_retval ){  NS_ENSURE_ARG_POINTER(aCategoryName);  NS_ENSURE_ARG_POINTER(aEntryName);  NS_ENSURE_ARG_POINTER(aValue);  // Before we can insert a new entry, we'll need to  //  find the |CategoryNode| to put it in...  PR_Lock(mLock);  CategoryNode* category = get_category(aCategoryName);  if (!category) {    // That category doesn't exist yet; let's make it.    category = CategoryNode::Create(&mArena);            char* categoryName = ArenaStrdup(aCategoryName, &mArena);    mTable.Put(categoryName, category);  }  PR_Unlock(mLock);  if (!category)    return NS_ERROR_OUT_OF_MEMORY;  return category->AddLeaf(aEntryName,                           aValue,                           aPersist,                           aReplace,                           _retval,                           &mArena);}