printf("Type Manifest File: %s\n", path);
PRINTF("Type Manifest File: %s\n", path);
ReadManifestIntoMemory(xptiInterfaceInfoManager* aMgr,                       PRUint32* pLength){    PRFileDesc* fd = nsnull;    PRInt32 flen;    PRInt64 fileSize;    char* whole = nsnull;    nsCOMPtr<nsILocalFile> aFile;    if(!aMgr->GetManifestDir(getter_AddRefs(aFile)) || !aFile)        return nsnull;        if(NS_FAILED(aFile->Append(g_MainManifestFilename)))        return nsnull;#ifdef DEBUG    {        static PRBool shown = PR_FALSE;        char* path;        if(!shown && NS_SUCCEEDED(aFile->GetPath(&path)) && path)        {            printf("Type Manifest File: %s\n", path);            nsMemory::Free(path);            shown = PR_TRUE;                }     }            #endif    if(NS_FAILED(aFile->GetFileSize(&fileSize)) || !(flen = nsInt64(fileSize)))        return nsnull;    whole = new char[flen];    if (!whole)        return nsnull;    // all exits from on here should be via 'goto out'     if(NS_FAILED(aFile->OpenNSPRFileDesc(PR_RDONLY, 0444, &fd)) || !fd)        goto out;    if(flen > PR_Read(fd, whole, flen))        goto out; out:    if(fd)        PR_Close(fd);    *pLength = flen;    return whole;}