nsresult rv = parser.GetString(aSection, "Count", parserBuf, MAXPATHLEN);
nsresult rv = parser.GetString("Extra Files", "Count", parserBuf, MAXPATHLEN);
LoadDirsIntoArray(nsIFile* aComponentsList, const char* aSection,                  const char *const* aAppendList,                  nsCOMArray<nsIFile>& aDirectories){  nsINIParser parser;  nsCOMPtr<nsILocalFile> lf(do_QueryInterface(aComponentsList));  parser.Init(lf);  char parserBuf[MAXPATHLEN];  nsresult rv = parser.GetString(aSection, "Count", parserBuf, MAXPATHLEN);  if (NS_SUCCEEDED(rv)) {    PRInt32 count = atoi(parserBuf);    char buf[18];    nsCOMPtr<nsIFile> parent;    aComponentsList->GetParent(getter_AddRefs(parent));    nsCOMPtr<nsILocalFile> lfParent (do_QueryInterface(parent));    for (PRInt32 i = 0; i < count; ++i) {      sprintf(buf, "Extension%d", i);      rv = parser.GetString(aSection, buf, parserBuf, MAXPATHLEN);      if (NS_SUCCEEDED(rv)) {        nsCOMPtr<nsILocalFile> dir(do_CreateInstance("@mozilla.org/file/local;1"));        dir->SetRelativeDescriptor(lfParent, nsDependentCString(parserBuf));        const char* const* a = aAppendList;        while (*a) {          dir->AppendNative(nsDependentCString(*a));          ++a;        }        PRBool exists;        rv = dir->Exists(&exists);        if (NS_SUCCEEDED(rv) && exists)          aDirectories.AppendObject(dir);      }    }  }}