зеркало из https://github.com/mozilla/gecko-dev.git
b=406849, SetCacheAsFile(true) on memory-cached loads is broken, patch from bz, r+sr=bisei, a=schrep
This commit is contained in:
Родитель
1d116df124
Коммит
12078dfe43
|
@ -322,7 +322,8 @@ nsCacheEntryDescriptor::GetStoragePolicy(nsCacheStoragePolicy *result)
|
|||
nsCacheServiceAutoLock lock;
|
||||
if (!mCacheEntry) return NS_ERROR_NOT_AVAILABLE;
|
||||
|
||||
return mCacheEntry->StoragePolicy();
|
||||
*result = mCacheEntry->StoragePolicy();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
@ -336,7 +337,16 @@ nsCacheEntryDescriptor::SetStoragePolicy(nsCacheStoragePolicy policy)
|
|||
PRBool storageEnabled = PR_FALSE;
|
||||
storageEnabled = nsCacheService::IsStorageEnabledForPolicy_Locked(policy);
|
||||
if (!storageEnabled) return NS_ERROR_FAILURE;
|
||||
|
||||
// Don't change the storage policy of entries we can't write
|
||||
if (!(mAccessGranted & ACCESS_WRITE))
|
||||
return NS_ERROR_NOT_AVAILABLE;
|
||||
|
||||
// Don't allow a cache entry to move from memory-only to anything else
|
||||
if (mCacheEntry->StoragePolicy() == nsICache::STORE_IN_MEMORY &&
|
||||
policy != nsICache::STORE_IN_MEMORY)
|
||||
return NS_ERROR_NOT_AVAILABLE;
|
||||
|
||||
mCacheEntry->SetStoragePolicy(policy);
|
||||
mCacheEntry->MarkEntryDirty();
|
||||
return NS_OK;
|
||||
|
|
Загрузка…
Ссылка в новой задаче