if (!category) {  category = CategoryNode::Create(&mArena);  char* categoryName = ArenaStrdup(aCategoryName, &mArena); mTable.Put(categoryName, category);
if ( _retval ) *_retval = 0;     CategoryNode* category; if ( !(category = find_category(aCategoryName)) ) {  category = new CategoryNode; nsCStringKey categoryNameKey(aCategoryName); Put(&categoryNameKey, category); }   LeafNode* entry = category->find_leaf(aEntryName);  nsresult status = NS_OK; if ( entry ) {    if ( aReplace ) {  if ( _retval ) *_retval = ToNewCString(*entry); } else status = NS_ERROR_INVALID_ARG; }      if ( NS_SUCCEEDED(status) ) {   delete entry;   entry = new LeafNode(aValue); nsCStringKey entryNameKey(aEntryName); category->Put(&entryNameKey, entry);   extern nsresult NS_GetComponentLoaderManager(nsIComponentLoaderManager* *result); nsCOMPtr<nsIComponentLoaderManager> mgr; NS_GetComponentLoaderManager(getter_AddRefs(mgr)); if (mgr) mgr->FlushPersistentStore(PR_FALSE); }  return status;
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);}