Fix for bug #40997. a=warren

This commit is contained in:
rusty.lynch%intel.com 2000-06-02 15:50:36 +00:00
parent 7802e4085f
commit f592edc947
3 changed files with 19 additions and 11 deletions

View File

@ -97,9 +97,10 @@ nsAboutBloat::NewChannel(nsIURI *aURI, nsIChannel **result)
}
else {
nsCOMPtr<nsIFile> file;
rv = NS_GetSpecialDirectory("xpcom.currentProcess.componentRegistry",
getter_AddRefs(file));
rv = NS_GetSpecialDirectory("xpcom.currentProcess.componentDirectory",
getter_AddRefs(file));
if (NS_FAILED(rv)) return rv;
rv = file->Append("bloatlogs");
if (NS_FAILED(rv)) return rv;
@ -108,7 +109,10 @@ nsAboutBloat::NewChannel(nsIURI *aURI, nsIChannel **result)
if (NS_FAILED(rv)) return rv;
if (!exists) {
rv = file->Create(nsIFile::DIRECTORY_TYPE, 0664);
// On all the platforms that I know use permissions,
// directories need to have the executable flag set
// if you want to do anything inside the directory.
rv = file->Create(nsIFile::DIRECTORY_TYPE, 0755);
if (NS_FAILED(rv)) return rv;
}

View File

@ -348,16 +348,18 @@ GetBloatEntry(const char* aTypeName, PRUint32 aInstanceSize)
BloatEntry* entry = NULL;
if (gBloatView) {
entry = (BloatEntry*)PL_HashTableLookup(gBloatView, aTypeName);
if (entry == NULL) {
if (entry == NULL && aInstanceSize > 0) {
entry = new BloatEntry(aTypeName, aInstanceSize);
PLHashEntry* e = PL_HashTableAdd(gBloatView, aTypeName, entry);
if (e == NULL) {
delete entry;
entry = NULL;
}
}
else {
NS_ASSERTION(aInstanceSize == 0 || entry->GetClassSize() == aInstanceSize, "bad size recorded");
} else {
NS_ASSERTION(aInstanceSize == 0 ||
entry->GetClassSize() == aInstanceSize,
"bad size recorded");
}
}
return entry;

View File

@ -348,16 +348,18 @@ GetBloatEntry(const char* aTypeName, PRUint32 aInstanceSize)
BloatEntry* entry = NULL;
if (gBloatView) {
entry = (BloatEntry*)PL_HashTableLookup(gBloatView, aTypeName);
if (entry == NULL) {
if (entry == NULL && aInstanceSize > 0) {
entry = new BloatEntry(aTypeName, aInstanceSize);
PLHashEntry* e = PL_HashTableAdd(gBloatView, aTypeName, entry);
if (e == NULL) {
delete entry;
entry = NULL;
}
}
else {
NS_ASSERTION(aInstanceSize == 0 || entry->GetClassSize() == aInstanceSize, "bad size recorded");
} else {
NS_ASSERTION(aInstanceSize == 0 ||
entry->GetClassSize() == aInstanceSize,
"bad size recorded");
}
}
return entry;