fixes bug 265028 "Clearing cache sometimes fails" patch by alfredkayser@nl.ibm.com, r+sr=darin

git-svn-id: svn://10.0.0.236/trunk@179388 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
darin%meer.net 2005-08-31 13:28:34 +00:00
parent 5a8b872830
commit 7d3dad4dfb

View File

@ -851,6 +851,8 @@ nsresult
nsDiskCacheStreamIO::SetEOF()
{
nsresult rv;
PRBool needToCloseFD = PR_FALSE;
NS_ASSERTION(mStreamPos <= mStreamEnd, "bad stream");
if (!mBinding) return NS_ERROR_NOT_AVAILABLE;
@ -860,6 +862,7 @@ nsDiskCacheStreamIO::SetEOF()
// we need an mFD, we better open it now
rv = OpenCacheFile(PR_RDWR | PR_CREATE_FILE, &mFD);
if (NS_FAILED(rv)) return rv;
needToCloseFD = PR_TRUE;
}
} else {
// data in cache block files
@ -893,6 +896,10 @@ nsDiskCacheStreamIO::SetEOF()
if (mFD) {
UpdateFileSize();
if (needToCloseFD) {
(void) PR_Close(mFD);
mFD = nsnull;
}
}
return NS_OK;