From dce6bd2291d2d331b206260b21cc795b33eff5dc Mon Sep 17 00:00:00 2001 From: "neeti%netscape.com" Date: Fri, 23 Jun 2000 13:39:44 +0000 Subject: [PATCH] fix for bug 39717 - Disk cache directory not being recreated after it's deleted.r=gagan git-svn-id: svn://10.0.0.236/trunk@73058 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/xpfe/bootstrap/nsAppRunner.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/mozilla/xpfe/bootstrap/nsAppRunner.cpp b/mozilla/xpfe/bootstrap/nsAppRunner.cpp index 160adbabcde..1f5c2239baa 100644 --- a/mozilla/xpfe/bootstrap/nsAppRunner.cpp +++ b/mozilla/xpfe/bootstrap/nsAppRunner.cpp @@ -640,17 +640,23 @@ static void InitCachePrefs() { const char * const CACHE_DIR_PREF = "browser.cache.directory"; nsresult rv; + PRBool isDir = PR_FALSE; NS_WITH_SERVICE(nsIPref, prefs, NS_PREF_PROGID, &rv); if (NS_FAILED(rv)) return; // If the pref is already set don't do anything nsCOMPtr cacheSubDir; rv = prefs->GetFilePref(CACHE_DIR_PREF, getter_AddRefs(cacheSubDir)); - if (NS_SUCCEEDED(rv) && cacheSubDir.get()) return; - + if (NS_SUCCEEDED(rv) && cacheSubDir.get()){ + rv = cacheSubDir->IsDirectory(&isDir); + if (NS_SUCCEEDED(rv) && isDir) + return; + } // Set up the new pref - rv = NS_NewFileSpec(getter_AddRefs(cacheSubDir)); - if(NS_FAILED(rv)) return; + if(!cacheSubDir.get()) { + rv = NS_NewFileSpec(getter_AddRefs(cacheSubDir)); + if(NS_FAILED(rv)) return; + } nsCOMPtr spec(dont_AddRef(NS_LocateFileOrDirectory(nsSpecialFileSpec::App_UserProfileDirectory50))); rv = cacheSubDir->FromFileSpec(spec);